我曾经听说在单行语句中保留大括号可能对 JavaScript 有害。我不记得推理了,谷歌搜索也没有太大帮助。
在 JavaScript 中将所有语句括在大括号内是一个好主意吗?
我在问,因为每个人似乎都这样做。
原文由 Tower 发布,翻译遵循 CC BY-SA 4.0 许可协议
我曾经听说在单行语句中保留大括号可能对 JavaScript 有害。我不记得推理了,谷歌搜索也没有太大帮助。
在 JavaScript 中将所有语句括在大括号内是一个好主意吗?
我在问,因为每个人似乎都这样做。
原文由 Tower 发布,翻译遵循 CC BY-SA 4.0 许可协议
有一个可读性方面——当你有复合语句时,它会变得非常混乱。缩进有帮助,但对编译器/解释器没有任何意义。
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
}
想法是,如果你总是有括号,那么你就知道要在该块中插入其他语句。
原文由 Rudu 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答929 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
不
但他们被推荐。如果您扩展声明,您将需要它们。
这是完全有效的
但是,强烈建议您始终使用大括号,因为如果您(或其他人)扩展了语句,则需要大括号。
在所有带有花括号的 C 语法风格语言中都遵循同样的做法。 C、C++、Java,甚至PHP都支持一行不带大括号的语句。您必须意识到您只保存 了两个字符,而对于某些人的支撑风格,您甚至连一行都没有保存。我更喜欢全括号样式(如下所示),因此它往往会更长一些。您具有非常清晰的代码可读性这一事实很好地满足了权衡。