switch優(yōu)化
// 優(yōu)化前:
const fun = function(){
console.log('執(zhí)行方法')
}
switch (type)
{
case 0:
fun();
break;
case 1:
fun();
break;
case 2:
fun();
break;
case 3:
fun();
break;
}
// 優(yōu)化后:
// 條件作為屬性名,處理邏輯作為屬性值
const fun = function(){
console.log('執(zhí)行方法')
}
const options = new Map([
[0,fun],
[1,fun],
[2,fun],
[3,fun]
])
const getFun = options.get(1)
getFun && getFun()
多值匹配優(yōu)化
// 優(yōu)化前:
if (value === 1 || value === 'one' || value === 2 || value === 'two') {
// Execute some code
}
// 優(yōu)化后:
if ([1, 'one', 2, 'two'].includes(value)) {
// Execute some code
}
隨機生成長度為10的字母數(shù)字字符串
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
尋找數(shù)組中的最大和最小值
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}