- 【强制】在一个 switch 块内,每个case要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个default 语句并且 放在最后,即使它什么代码也没有。
- 在 if/else/for/while/do 语句中必须使用大括号,即使只有一行代码,避免使用 下面的形式: if (condition) statements;
- 【推荐】推荐尽量少用 else, if-else 的方式可以改写成
```
if(condition) {
return obj;
}
```
- 方式表达逻辑,【强制】请勿超过3层, 超过请使用状态设计模式。 正例:逻辑上超过 3 层的 if-else 代码可以使用卫语句,或者状态模式来实现。
```
// 修改前
if(isReqeustError) {
console.log('isReqeustError is true');
}
else {
if(!classList.length) {
console.log('classList's length is zero');
}else {
console.log('classList's length is more than zero');
}
}
// 使用卫语句
if(isReqeustError) {
console.log('isReqeustError is true');
return;
}
if(!classList.length) {
console.log('classList's length is zero');
return;
}
console.log('classList's length is more than zero');
```
附:[JavaScript设计模式](https://www.kancloud.cn/digest/design-pattern-of-js/128426)
-【推荐】使用三目运算,替换if else结构,精简代码
-【推荐】除常用方法(如 getXxx/isXxx)等外,不要在条件判断中执行其它复杂的语句,将复 杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。 说明:很多 if 语句内的逻辑相当复杂,阅读者需要分析条件表达式的最终结果,才能明确什么 样的条件执行什么样的语句,那么,如果阅读者分析逻辑表达式错误呢?
```
//伪代码如下
boolean existed = (file.open(fileName, "w") != null)&& (...) || (...);
if (existed) {
...
}
```