相信大家经常见到如下类型的代码
if (status === 1) {
// todo
} else if (status === 2) {
// todo
} else if (status === 3) {
// todo
} else if (status === 4) {
// todo
}
// 或者
switch (status) {
case 0:
// todo
break;
case 1:
// todo
break;
case 2:
// todo
break;
case 3:
// todo
break;
default:
}
这样的代码没有错误,但是在后期维护和阅读时,基本上是很难知道0123到底代表什么意思。即使注释了0123的意思,也得多次翻看注释才能顺畅阅读代码。所以,可以把判断逻辑值抽出,如下:
const STATUS = {
BEGAIN: 1, // 活动开始
DOING: 2, // 活动进行中
FINISHED: 3, // 活动完成
INVALID: 4, // 活动失效
};
switch (status) {
case STATUS.BEGAIN:
// todo
break;
case STATUS.DOING:
// todo
break;
case STATUS.FINISHED:
// todo
break;
case STATUS.INVALID:
// todo
break;
default:
}
如此,虽然代码量略增一点点,但是可读性大大增加。如果判断逻辑值非常多,或者需要依赖多种计算,则完全可以抽出到一个独立的文件中。