【发布时间】:2011-08-19 06:43:35
【问题描述】:
可能重复:
Are curly braces necessary in one line statements in JavaScript?
我对此几乎持肯定态度,但我想确保避免出现错误代码。在 JavaScript 中,单个 if 语句是否需要花括号?
if(foo)
bar;
这样好吗?
【问题讨论】:
可能重复:
Are curly braces necessary in one line statements in JavaScript?
我对此几乎持肯定态度,但我想确保避免出现错误代码。在 JavaScript 中,单个 if 语句是否需要花括号?
if(foo)
bar;
这样好吗?
【问题讨论】:
是的,它有效,但只能在 'if' 或 'else' 语句之后最多一行。如果需要使用多行,则需要大括号。
以下将起作用
if(foo)
Dance with me;
else
Sing with me;
以下内容不会按照您希望的方式工作。
if(foo)
Dance with me;
Sing with me;
else
Sing with me;
You don't know anything;
但是,如果按照以下给定方式更正了上述内容,那么它对您有用:
if(foo){
Dance with me;
Sing with me;
}else{
Sing with me;
You don't know anything;
}
【讨论】:
if 语句中添加一行,我的选择是 1) 破坏代码或 2) 回到“不太漂亮”的方式,并且在此过程中,当我只想添加一行时,通过修改多行来创建一个丑陋的差异。似乎使用卷曲开始是最明智的选择。
虽然在语法上可以忽略它们,但您不应该这样做。歧义严重的一种情况是
if (false)
if (true) foo();
else
bar();
这不会运行foo 和bar,因为else 属于第二个if 语句。用大括号没问题:
if (false) {
if (true) { foo(); }
} else {
bar();
}
【讨论】:
if (...) 时(根据代码可读性的论点,无论如何都应该这样做),这永远不会成为问题,因为人们会自动使用大括号表示多个行。
【讨论】:
是的,它在语法上是有效的。但它被认为是不好的风格。
如果你把它写在一行上,你可以争辩说在某些情况下它是可以的,因为它是明确的。
if (foo) bar;
不过,在大多数情况下,使用大括号可以提高代码的清晰度,这是一件好事。代码的阅读次数多于编写次数,并且应该尽可能明确。
此外,如果您在某些时候需要添加第二条语句,那么无论如何您肯定需要花括号。
【讨论】:
if,后跟(,然后是expression,然后是),然后是statement,其中{ statements };是一个语句,在你的例子中还有bar;。它是明确的,你只需要知道一个语句是什么......