rub*_*buc 31 javascript if-statement
我几乎肯定这一点,但我想确保避免错误的代码.在JavaScript中,单个if语句需要大括号吗?
if(foo)
bar;
Run Code Online (Sandbox Code Playgroud)
这个可以吗?
OM *_*ity 39
是的,它可以工作,但只是在'if'或'else'语句之后只有一行.如果需要使用多行,则需要花括号.
以下将有效
if(foo)
Dance with me;
else
Sing with me;
Run Code Online (Sandbox Code Playgroud)
以下将不会按您希望的方式工作.
if(foo)
Dance with me;
Sing with me;
else
Sing with me;
You don't know anything;
Run Code Online (Sandbox Code Playgroud)
但如果按照以下方式更正上述内容,那么它适用于您:
if(foo){
Dance with me;
Sing with me;
}else{
Sing with me;
You don't know anything;
}
Run Code Online (Sandbox Code Playgroud)
use*_*621 27
虽然在语法上可以省略它们,但你不应该这样做.歧义严重的一个案例是
if (false)
if (true) foo();
else
bar();
Run Code Online (Sandbox Code Playgroud)
这将运行既不foo也不是bar因为else属于第二if陈述.使用大括号没问题:
if (false) {
if (true) { foo(); }
} else {
bar();
}
Run Code Online (Sandbox Code Playgroud)
是的,它在语法上是有效的。但这被认为是不好的风格。
如果你把它写在一行上,你可能会说在某些情况下这是可以的,因为它是明确的。
if (foo) bar;
Run Code Online (Sandbox Code Playgroud)
但在大多数情况下,使用大括号可以提高代码的清晰度,这是一件好事。代码的阅读次数多于编写次数,因此代码应该尽可能明确。
另外,如果您在某些时候需要添加第二条语句,那么无论如何您肯定都需要花式。