1.單個(gè)if語(yǔ)句優(yōu)化
①&& || 優(yōu)化
if (e) {
this.getList()
}
優(yōu)化后
e && this.getList()
2.if/else語(yǔ)句優(yōu)化
①三元運(yùn)算符優(yōu)化
if (a) {
邏輯1;
} else {
邏輯2;
}
優(yōu)化后
a ? 邏輯1 : 邏輯2;
3.單if多條件優(yōu)化
①includes優(yōu)化
function change(type) {
if (type === 'jpg' || type === 'png' || type === 'svg') {
邏輯;
}
}
優(yōu)化后
function change(type) {
const imgType = ['jpg', 'png', 'svg']
if (imgType.includes(type)) {
邏輯;
}
}
4.處理多層復(fù)雜條件
①低階switch case優(yōu)化(switch case比較用的是全等,注意類型)
if (e === 1) {
邏輯1;
} else if (e === 2) {
邏輯2;
} else {
邏輯3;
}
優(yōu)化后
switch (e) {
case 1: 邏輯1;
breack;
case 2: 邏輯2;
breack;
default: 邏輯3;
breack;
}
②中階key-value對(duì)象枚舉優(yōu)化
function change(val) {
let array = {
'A' : 邏輯1,
'B' : 邏輯2,
'C' : 邏輯3,
'D' : 邏輯4
}
let newArray = array(val)
newArray()
}
③高階通過(guò)map實(shí)現(xiàn)優(yōu)化
if (mode == 'key') {
if (this.type === 'A') {
邏輯1;
} else if (this.type === 'B') {
邏輯2;
} else if (this.type === 'C') {
邏輯3
}
} else if (mode == 'vas') {
if (this.type === 'D') {
邏輯4;
} else if (this.type === 'E') {
邏輯5;
} else if (this.type === 'F') {
邏輯6;
}
}
優(yōu)化后
let array = new Map([
['key_A', 邏輯1],
['key_B', 邏輯2],
['key_C', 邏輯3],
['vas_D', 邏輯4],
['vas_E', 邏輯5]
['vas_F', 邏輯6],
])
function change(mode, type) {
let value = `${mode}_${type}`
let newArray = array.get(value)
方法(newArray)
}