switch优化
// 优化前:
const fun = function(){
console.log('执行方法')
}
switch (type)
{
case 0:
fun();
break;
case 1:
fun();
break;
case 2:
fun();
break;
case 3:
fun();
break;
}
// 优化后:
// 条件作为属性名,处理逻辑作为属性值
const fun = function(){
console.log('执行方法')
}
const options = new Map([
[0,fun],
[1,fun],
[2,fun],
[3,fun]
])
const getFun = options.get(1)
getFun && getFun()
多值匹配优化
// 优化前:
if (value === 1 || value === 'one' || value === 2 || value === 'two') {
// Execute some code
}
// 优化后:
if ([1, 'one', 2, 'two'].includes(value)) {
// Execute some code
}
随机生成长度为10的字母数字字符串
Math.random().toString(36).substring(2);
1秒更新一次时间
setInterval(() => document.body.innerHTML = new Date().toLocaleString().slice(10,18))
随机生成 16 进制颜色
'#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0');
取整
const a = ~~1.11 // 1
const b = 1.11 | 0 // 1
const c = 1.11 >> 0 // 1
寻找数组中的最大和最小值
const arr = [2, 8, 15, 4];
Math.max(...arr); // 15
Math.min(...arr); // 2
格式化金额
var num= "-12345.1";
var format = num.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
console.log(format); // -12,345.1
变量值交换
const a = 1;
const b = 2;
[a, b] = [b, a];
console.log(a); // 2
删除对象属性
let obj = {a: 1, b: 2, c: 3, d: 4};
let {a, b, ...newObj} = obj;
console.log(newObj); // {c: 3, d: 4}