急躁的手套 · Convert PNG to WEBP ...· 1 月前 · |
活泼的足球 · Soupian / 搜片.com - ...· 6 月前 · |
耍酷的蘑菇 · CSS新世界更强的视觉表现 - 女王控的博客· 6 月前 · |
气宇轩昂的竹笋 · 历史更新记录 - SqlSugar - ...· 8 月前 · |
果断的汉堡包 · tortoisesvn软件怎么使用-tort ...· 10 月前 · |
我曾经听说,在一行语句中留下大括号在JavaScript中可能是有害的。我已经不记得是怎么回事了,用谷歌搜索一下也没什么用。
在JavaScript中,将所有语句放在大括号中是个好主意吗?
我在问,因为似乎每个人都这样做。
发布于 2011-01-26 02:25:21
有一个可读性的方面--当你有复合语句时,它可能会变得非常混乱。缩进有帮助,但对编译器/解释器没有任何意义。
var a;
var b;
var c;
//Indenting is clear
if (a===true)
alert(a); //Only on IF
alert(b); //Always
//Indenting is bad
if (a===true)
alert(a); //Only on IF
alert(b); //Always but expected?
//Nested indenting is clear
if (a===true)
if (b===true)
alert(a); //Only on if-if
alert (b); //Always
//Nested indenting is misleading
if (a===true)
if (b===true)
alert(a); //Only on if-if
alert (b); //Always but expected as part of first if?
//Compound line is misleading
//b will always alert, but suggests it's part of if
if (a===true) alert(a);alert(b);
else alert(c); //Error, else isn't attached
此外,还有一个可扩展性方面:
//Problematic
if (a===true)
alert(a);
alert(b); //We're assuming this will happen with the if but it'll happen always
else //This else is not connected to an if anymore - error
alert(c);
//Obvious
if (a===true) {
alert(a); //on if
alert(b); //on if
} else {
alert(c); //on !if
}
这种想法是这样的:如果您总是使用括号,那么您就知道在该块中插入其他语句。
发布于 2013-01-06 20:41:14
这个问题是关于一行语句的。然而,提供的许多示例说明了不能省略基于多行语句的大括号的原因。在一行中不使用括号是完全安全的,如果这是您喜欢的编码样式。
例如,这个问题会问这是否可以:
if (condition) statement;
它不会询问这是否正常:
if (condition)
statement;
我认为去掉括号更可取,因为它使代码的可读性更好,减少了多余的语法。
我的编码风格是永远不要使用括号,除非代码是一个块。并且永远不要在一行中使用多个语句(用分号分隔)。我发现这很容易阅读和清晰,并且在'if‘语句中不会有作用域问题。因此,在单个if条件语句中使用方括号需要3行代码。如下所示:
if (condition) {
statement;
}
使用一行if语句更可取,因为它使用更少的垂直空间,并且代码更紧凑。
我不会强迫其他人使用这种方法,但它对我很有效,我完全同意所提供的关于省略括号会导致编码/作用域错误的示例。
发布于 2012-03-11 23:02:36
不存在可维护性问题!
你们所有人的问题是到处都是分号。对于多个语句,不需要大括号。如果要添加语句,只需使用逗号。
if (a > 1)