嵌套的 if's:使用 if (x) {statement;} 还是 if (!x) 返回更好;陈述;
Nested if's: is it better to use if (x) {statement;} or if (!x) return; statement;
是否
普遍认为使用这样的结构是更好的编程实践:
if (x == 1) {
if (y != 1) {
[code]
}
}
或者使用这样的警卫:
if (x == 1) {
if (y == 1) return;
[code]
}
第一种样式具有更合乎逻辑的结构,可以一目了然地确定哪些代码依赖于什么。
但第二种样式会产生更简单的视觉样式和更少的代码行。
第二种风格被认为是坏习惯吗?还是只是一种风格选择?
[更新] 这是重复的
无论你的"家风"说什么。
编码风格的事情是 - 这真的无关紧要,只要它在整个代码中保持一致。以及您所有同事的代码。
清晰是王道 - 如果你的代码清楚它在做什么,那就是好代码。如果不清楚它在做什么,那就是糟糕的代码。(如果每个人都使用不同的风格,那就不清楚了,因此你所有的代码都是糟糕的)。 仅此而已。不要担心保存代码行 - 编译器不在乎。
问题不应该是"使用嵌套if
s更好还是使用警卫更好",而是"什么时候使用嵌套if
更好,什么时候使用警卫更好"!
两种方式都有优点和缺点。使用 if
s 可促进单点出口,但在嵌套较深时可能变得难以阅读。防护装置减少了嵌套,更易于阅读,但创建了多个出口点。
选择哪个并不重要,只要你的功能很短!
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如果 a 为 false,则 if(a) === if(false)
- 如何在ReactJS JSX中执行嵌套的if-else语句
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 正在尝试使用if和else添加类,但无法正常工作
- 我应该使用Ng提交还是点击表格
- 在PHP中使用javascript更改页面标题'if'
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在 API 调用后和 if 语句中启用提交按钮
- 我需要NG-IF/NG-SWITCH还是NG-SHOW&NG-HIDE
- JS:在这种情况下,我应该使用switch-case语句还是if/else
- 嵌套的 if's:使用 if (x) {statement;} 还是 if (!x) 返回更好;陈述;
- 不确定我是把悬停还是if搞砸了
- 哪个更快[if (x或y)]还是[if x else if y]
- 我使用javascript的排序函数在角范围内的一个if条件.我的条件是假的,但它还是要进去
- Ng-if, ng-show还是自定义指令?关于最佳实践的建议
- 是在if语句内还是在if语句外声明变量更好呢?
- 调用 if 语句还是不断重新分配值更好?(JavaScript或任何语言)