可能重复:
Are curly braces necessary in one line statements in JavaScript?
我对此几乎是肯定的,但我想确保避免错误的代码。在JavaScript中,单个if
语句需要大括号吗?
if(foo)
bar;
这样可以吗?
答案 0 :(得分:36)
是的,它有效,但只有在' if'之后才能使用一行。或者'否则'声明。如果需要使用多行,则需要花括号。
以下内容可行
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;
}
答案 1 :(得分:26)
虽然在语法上可以省略它们,但你不应该这样做。歧义严重的一个案例是
if (false)
if (true) foo();
else
bar();
由于foo
属于第二个bar
语句,因此else
和if
都不会运行。使用大括号没问题:
if (false) {
if (true) { foo(); }
} else {
bar();
}
答案 2 :(得分:6)
是的,这是允许的。之前也讨论过:
但应该避免:
答案 3 :(得分:2)
是的,它在语法上是有效的。但它被认为是不好的风格。
如果你把它写在一行上,可以认为有些情况可以,因为它是明确的。
if (foo) bar;
在大多数情况下,使用花括号会增加代码清晰度,这是一件好事。代码更经常被阅读而不是书面形式,它应该尽可能明确。
另外,如果你在某个时候需要添加第二个声明,那么无论如何你肯定会需要curlies。