13个JavaScript单行代码,让你看起来更专业
共 3590字,需浏览 8分钟
·
2021-01-21 14:47
英文 | https://medium.com/dailyjs/13-javascript-one-liners-thatll-make-you-look-like-a-pro-29a27b6f51cb
翻译 | web前端开发公众号(ID:web_qdkf)
JavaScript可以做很多令人惊奇的事情!
从复杂的框架到处理API,都需要学习很多东西。
但是,它也可以让你仅用一行代码就可以完成一些很棒的工作。
学习这13个JavaScript单行式代码,让你看起来更像专业人士!
1、随机获取布尔值(true/false)
此函数将使用Math.random()方法返回布尔值(真或假)。Math.random将创建一个介于0和1之间的随机数,然后我们检查它是否大于或小于0.5。这意味着你有各50%的机会得到真或假值。
const randomBoolean = () => Math.random() >= 0.5;
console.log(randomBoolean());
// Result: a 50/50 change on returning true of false
2、判断给的日期是否为工作日
使用此方法,你将可以判断函数中提供的日期是工作日还是双休日。
const isWeekday = (date) => date.getDay() % 6 !== 0;
console.log(isWeekday(new Date(2021, 0, 11)));
// Result: true (Monday)
console.log(isWeekday(new Date(2021, 0, 10)));
// Result: false (Sunday)
3、反转字符串
用不同的方式可以反转字符串。可以使用最简单的split(),reverse()和join()方法。
const reverse = str => str.split('').reverse().join('');
reverse('hello world');
// Result: 'dlrow olleh'
4、判断当前选项卡是否在视图/焦点中
我们可以使用document.hidden属性检查当前标签页是否在视图/焦点中。
const isBrowserTabInView = () => document.hidden;
isBrowserTabInView();
// Result: returns true or false depending on if tab is in view / focus
5、判断数字是偶数还是奇数
可以使用模运算符(%)解决的超简单任务。如果你不太熟悉它,这是有关Stack Overflow的直观说明(地址:https://stackoverflow.com/questions/17524673/understanding-the-modulus-operator/17525046#17525046)
const isEven = num => num % 2 === 0;
console.log(isEven(2));
// Result: true
console.log(isEven(3));
// Result: false
6、从日期获取时间
通过使用toTimeString()方法并将字符串切片用在正确的位置,我们可以从提供的日期中获取时间,也可以获取当前时间。
const timeFromDate = date => date.toTimeString().slice(0, 8);
console.log(timeFromDate(new Date(2021, 0, 10, 17, 30, 0)));
// Result: "17:30:00"
console.log(timeFromDate(new Date()));
// Result: will log the current time
7、将数字四舍五入到固定的小数点
使用该Math.pow()方法,我们可以将数字四舍五入到函数中提供的某个小数点。
const toFixed = (n, fixed) => ~~(Math.pow(10, fixed) * n) / Math.pow(10, fixed);
// Examples
toFixed(25.198726354, 1); // 25.1
toFixed(25.198726354, 2); // 25.19
toFixed(25.198726354, 3); // 25.198
toFixed(25.198726354, 4); // 25.1987
toFixed(25.198726354, 5); // 25.19872
toFixed(25.198726354, 6); // 25.198726