【问题标题】:for next loop brackets in javascriptjavascript中的下一个循环括号
【发布时间】:2013-03-07 09:22:40
【问题描述】:

我最近发现了这段 JavaScript 代码(功能上很好),但我注意到它们在 for next 循环周围没有括号。我一直认为您必须包含它们才能使代码正常运行。在什么情况下你可以省略括号并且仍然可以摆脱它?功能上,也就是说,不是美学上的。

for (var i = 0; i < rbuttons.children.length; i++)
    if (rbuttons.children[i].value == true)
        return rbuttons.children[i].text;

【问题讨论】:

  • 如果括号不存在,那么它会立即进入其 for 循环。所以你在循环或条件语句中有一行编码,然后你可以省略括号。

标签: javascript curly-brackets


【解决方案1】:

括号不是仅对一个语句是强制性的。良好的做法,但不是强制性的

所以

if (x) alert("x");

if (x) 
   alert("x");

会起作用

你的情况

if (rbuttons.children[i].value == true) return rbuttons.children[i].text;

是一个陈述

【讨论】:

    【解决方案2】:

    如果你只有一个语句,你可以省略括号。

    if (someTest)
    statement1;
    statement2;
    

    等价于

    if (someTest)
    {
        statement1;
    }
    statement2;
    

    请注意,最好始终包含括号。

    【讨论】:

      【解决方案3】:

      if 相同。 下一条语句算作for 循环的成员。

      for( var i = 0; i<10;i++)
      console.log(i);
      console.log("foo");
      // prints 0-9 but "foo" only once
      

      由于您的代码中的if 仅将return 语句绑定到自身,而if 本身绑定到for,因此您可以在此sn-p 中省略这两个语句的大括号。

      草率且容易出错的风格,绝对不推荐。

      【讨论】:

        【解决方案4】:

        如果没有括号 'for' 和 'if' 只考虑下一个语句。这就是你的代码正在运行的原因。在 for 和检查之后再给出一个语句,你的代码将无法工作。

        var y=2;
        var x=0;
        for(i=0;i<10;i++)
         x+=i;//inside loop
         y+=i;//not inside loop
        
        
        if(y)
        x=5;//work according to if condition
        y=10;//not work according to if condition
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-02
          • 2015-07-28
          • 1970-01-01
          相关资源
          最近更新 更多