1.Array.includes 替代多条件
// 传统写法
if (status === 'open' || status === 'close' || status === 'pause') {
todo();
}
// 替代写法
const todoStatus = ['open', 'close', 'pause'];
if (todoStatus .includes(status)) {
todo();
}
2.三元运算符链式使用
// 传统写法
let message;
if (score >= 90) {
message ='优秀';
} else if (score >= 80) {
message ='良好';
else if (score >= 60) {
message ='及格';
else{
message ='不及格';
}
// 替代写法
const message =
score >= 90 ? '优秀' :
score >= 80 ? '良好' :
score >= 60 ? '及格' : '不及格';
3.对象映射替代 if-else
// 传统写法
function getPrice(user) {
if (user.type === 'vip') {
return 'VIP价格';
} else if (user.type === 'svip') {
return 'SVIP价格';
} else if (user.type === 'vvip') {
return 'VVIP价格';
} else {
return '普通价格';
}
}
// 替代写法
const priceStrategy = {
vip: () => 'VIP价格',
svip: () => 'SVIP价格',
vvip: () => 'VVIP价格',
default: () => '普通价格'
};
function getPrice(user) {
return (priceStrategy[user.type] || priceStrategy.default)();
}