【小技巧】提高代码判断逻辑可读性

244 阅读1分钟

相信大家经常见到如下类型的代码

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:
}

如此,虽然代码量略增一点点,但是可读性大大增加。如果判断逻辑值非常多,或者需要依赖多种计算,则完全可以抽出到一个独立的文件中。