做'如果' JavaScript中的语句需要花括号吗?

时间:2011-08-19 06:43:35

标签: javascript if-statement

  

可能重复:
  Are curly braces necessary in one line statements in JavaScript?

我对此几乎是肯定的,但我想确保避免错误的代码。在JavaScript中,单个if语句需要大括号吗?

if(foo)
    bar;

这样可以吗?

4 个答案:

答案 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语句,因此elseif都不会运行。使用大括号没问题:

if (false) {
    if (true) { foo(); }
} else {
    bar();
}

答案 2 :(得分:6)

是的,这是允许的。之前也讨论过:

但应该避免:

答案 3 :(得分:2)

是的,它在语法上是有效的。但它被认为是不好的风格。

如果你把它写在一行上,可以认为有些情况可以,因为它是明确的。

 if (foo) bar;

在大多数情况下,使用花括号会增加代码清晰度,这是一件好事。代码更经常被阅读而不是书面形式,它应该尽可能明确。

另外,如果你在某个时候需要添加第二个声明,那么无论如何你肯定会需要curlies。