用于javascript中的下一个循环括号

时间:2013-03-07 09:22:41

标签: javascript curly-brackets

我最近发现了一些JavaScript代码(功能很好),但我注意到它们在下一个循环中没有括号。我一直认为你必须包含它们才能使代码正常运行。在什么条件下你可以省略括号并仍然逃脱它?在功能上,也就是说,不是美学上的。

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

4 个答案:

答案 0 :(得分:2)

仅对一个声明强制使用括号。良好做法,但不是强制性的

所以

if (x) alert("x");

if (x) 
   alert("x");

将起作用

在你的情况下

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

是一个陈述

答案 1 :(得分:1)

如果没有括号'for'和'if'只考虑下一个声明。这就是为什么你的代码正在运行。在for和check之后再发一个声明,你的代码将无效。

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

答案 2 :(得分:1)

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,因此可以省略两者的大括号在这个片段中。

邋and且容易出错的风格,绝对不推荐。

答案 3 :(得分:1)

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

if (someTest)
statement1;
statement2;

相当于

if (someTest)
{
    statement1;
}
statement2;

请注意,始终包含括号是最佳做法。