Javascript if if statement-- no {}是否需要?

时间:2014-07-10 15:32:47

标签: javascript if-statement curly-braces

我现在正在Udemy.com上通过HTML5项目课程工作,这个人的示例代码有:

//Use a timer to call paint function
        if(typeof game_loop != "undefined") clearInterval(game_loop);
        game_loop = setInterval(paint, speed);

我认为'if'语句必须有大括号,所以如果'if'语句为true,则内部代码可以运行。请指教。感谢

5 个答案:

答案 0 :(得分:4)

您可以将if用于任何单个语句,无论该语句是块语句还是任何其他语句。

ECMAScript中if语句的语法是:

IfStatement :

    if ( Expression ) Statement else Statement
    if ( Expression ) Statement

请注意,没有定义花括号。允许任何有效的陈述。

此:

 if (condition)
     then_case();
 else
     else_case();

评估与此相同:

 if (condition) {
     then_case();
 } else {
     else_case();
 }

如果你有多个语句,那么你需要一个块语句来包含它们。

 if (condition) {
     then_case();
     also_this();
 } else {
     else_case();
     also_that();
 }

有时你会看到像

这样的东西
 if (condition)
      then_case(), also_this();

评估,但很难看。 (最好忘记我的最后一个例子。:-))

答案 1 :(得分:3)

您的示例代码在语法上是正确的。假设在if / else语句之后只有一行代码,则可以省略括号。

if (condition)
    //Do something
else
    //Do something

许多人,包括我自己,都不喜欢这种做法。请在此处查看进一步的讨论:

答案 2 :(得分:0)

与其他'c'语法语言类似,如果语句只是一行,则可以省略上下文的范围。

e.g。

if(true)
    alert('hello');

等于

if(true) alert('hello');

等于

if(true){ alert('hello'); }

您可能还会看到另一种表单

var myBool = Boolean(someValue) ? false : true

答案 3 :(得分:0)

如果只有一个语句成为if或else的主体的一部分,则花括号是可选的。但是如果你想让一组陈述成为if或者其他人的一部分,那么必须有大括号。

if(condition)
    //Only one statement
else if(condition2)
    //Only one statement
else
    //Only one statement

但在下文中,必须使用花括号。

if(condition){
    //first statement
    //second statement
    .....
    //nth statement
}
else if(condition2){
    //first statement
    //second statement
    .....
    //nth statement
}
else{
    //first statement
    //second statement
    .....
    //nth statement
}

请注意,它不仅适用于JavaScript,它在大多数编程语言中也是相同的行为,如C, C++, Java等。

答案 4 :(得分:-2)

对于if语句的单行结果,您不需要大括号。但是如果if语句的结果是多个语句,那么你用大括号将它们包装起来就可以识别它们。