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

ブラケットは、1 つのステートメントのみでは必須ではありません。良い習慣だが必須ではない

それで

if (x) alert("x");

また

if (x) 
   alert("x");

動作します

あなたの場合

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

1つのステートメントです

于 2013-03-07T09:26:19.870 に答える
1

括弧「for」と「if」がない場合、次のステートメントのみを考慮します。これがコードが実行されている理由です。for の後にもう 1 つのステートメントを指定してチェックすると、コードは機能しません。

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

ステートメントが 1 つしかない場合は、括弧を省略できます。

if (someTest)
statement1;
statement2;

と同等です

if (someTest)
{
    statement1;
}
statement2;

常に括弧を含めることがベスト プラクティスと見なされることに注意してください。

于 2013-03-07T09:26:30.717 に答える