1

だから私は以下のコードを持っています:

var divs = ["A", "B", "C"];
for (var i = 0, div; div = divs[i]; i++) {  
  print(div);
}

私が理解しているように、 for ループは divs 配列のすべての要素を繰り返し処理し、それらを出力します。しかし、ループがどのように終了するかを理解できません。誰かが私にそれを説明できますか?

4

2 に答える 2

4

が範囲外にdiv = divs[i]なるとループが終了します。undefinedi

undefinedは偽の値であるため、条件が満たされていないと見なされ、ループが停止します。

比較ではなく、割り当てを行っていることに注意してください。割り当て式は、割り当てられた値を返し、その値が条件に使用されます。

また、この手法が信頼できるのは、配列のメンバーが偽でない場合のみであることに注意してください。0たとえば、配列にがあった場合、早期に終了します。

于 2012-07-22T16:09:09.183 に答える
2

for終了するかどうかを定義するループの部分は、2 番目の部分です。

div = divs[i]

通常、i < divs.lengthwhich yieldstrueまたはを使用しますfalse。ここで、式は"A""B""C"、およびundefinedに続いて評価されます。undefined次のように動作falseします: ループを終了します。これundefinedは is のような「偽の」値だからfalseです。(文字列はありません。)

于 2012-07-22T16:10:23.980 に答える