0

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

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

4 回答 4

2

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

所以

if (x) alert("x");

或者

if (x) 
   alert("x");

将工作

在你的情况下

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

是一个陈述

于 2013-03-07T09:26:19.870 回答
1

如果没有括号 '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
于 2013-03-07T09:26:23.170 回答
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,因此您可以在此代码段中省略两者的大括号。

马虎和容易出错的风格,绝对不推荐。

于 2013-03-07T09:26:23.530 回答
1

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

if (someTest)
statement1;
statement2;

相当于

if (someTest)
{
    statement1;
}
statement2;

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

于 2013-03-07T09:26:30.717 回答