だから私は以下のコードを持っています:
var divs = ["A", "B", "C"];
for (var i = 0, div; div = divs[i]; i++) {
print(div);
}
私が理解しているように、 for ループは divs 配列のすべての要素を繰り返し処理し、それらを出力します。しかし、ループがどのように終了するかを理解できません。誰かが私にそれを説明できますか?
だから私は以下のコードを持っています:
var divs = ["A", "B", "C"];
for (var i = 0, div; div = divs[i]; i++) {
print(div);
}
私が理解しているように、 for ループは divs 配列のすべての要素を繰り返し処理し、それらを出力します。しかし、ループがどのように終了するかを理解できません。誰かが私にそれを説明できますか?
が範囲外にdiv = divs[i]なるとループが終了します。undefinedi
undefinedは偽の値であるため、条件が満たされていないと見なされ、ループが停止します。
比較ではなく、割り当てを行っていることに注意してください。割り当て式は、割り当てられた値を返し、その値が条件に使用されます。
また、この手法が信頼できるのは、配列のメンバーが偽でない場合のみであることに注意してください。0たとえば、配列にがあった場合、早期に終了します。
for終了するかどうかを定義するループの部分は、2 番目の部分です。
div = divs[i]
通常、i < divs.lengthwhich yieldstrueまたはを使用しますfalse。ここで、式は"A"、"B"、"C"、およびundefinedに続いて評価されます。undefined次のように動作falseします: ループを終了します。これundefinedは is のような「偽の」値だからfalseです。(文字列はありません。)