JS 6个实用小知识点(第七更)

111 阅读1分钟

我正在参加「掘金·启航计划」

前言

由于时间和工作的关系,好久没有发文了,现在让我们接着之前的知识点继续来。。。

正文

一行代码实现乘法

通过 Array.from() 方法和 Array.keys() 方法生成一个数组,并利用 reduce() 方法计算乘积。

const multiply = (a, b) => Array.from(Array(b).keys()).reduce((acc, curr) => acc + a, 0);

console.log(multiply(5, 3)); // 15

一行代码实现判断对象是否为空

对象的constructor属性用于返回创建该对象的函数,也就是我们常说的构造函数。
返回类型:ArrayBooleanDateFunctionNumberObjectString

const isEmptyObject = obj => Object.keys(obj).length === 0 && obj.constructor === Object;

console.log(isEmptyObject({})); // true
console.log(isEmptyObject({ name: 'xiaoming' })); // false

实现数字千位分隔符

使用正则表达式和 replace() 方法实现数字千位分隔符。

const formatNumber = num => num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
console.log(formatNumber(123456)); // 123,456

实现一个模板字符串函数

通过正则表达式和 replace() 方法实现一个模板字符串函数,用于替换字符串中的占位符。

const template = (str, data) => str.replace(/\$\{(.*?)\}/g, (match, p1) => data[p1]);

let name = 'xiaoming';
let age = 18;

console.log(template('My name is ${name} and I am ${age} years old.', { name, age }));
// My name is xiaoming and I am 18 years old.

利用 Array.some() 方法实现多重条件判断

利用 Array.some() 方法和箭头函数实现多重条件判断。

let age = 20;
let isStudent = true;

console.log([age >= 18, isStudent].some(val => val === false)); // false

创建一个简单的随机字符串

使用 Math.random() 方法生成随机数,然后将其转换为字符串。

const randomString = length => Array.from({ length }, () => Math.floor(Math.random() * 36).toString(36)).join('');

console.log(randomString(10)); // "tsbeypf48d"

结语

大家都学会了么?让我们一起期待下一次的更新~