🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
- 【强制】在一个 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) { ... } ```