だから私は以下のコードを持っています:
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]
なるとループが終了します。undefined
i
undefined
は偽の値であるため、条件が満たされていないと見なされ、ループが停止します。
比較ではなく、割り当てを行っていることに注意してください。割り当て式は、割り当てられた値を返し、その値が条件に使用されます。
また、この手法が信頼できるのは、配列のメンバーが偽でない場合のみであることに注意してください。0
たとえば、配列にがあった場合、早期に終了します。
for
終了するかどうかを定義するループの部分は、2 番目の部分です。
div = divs[i]
通常、i < divs.length
which yieldstrue
またはを使用しますfalse
。ここで、式は"A"
、"B"
、"C"
、およびundefined
に続いて評価されます。undefined
次のように動作false
します: ループを終了します。これundefined
は is のような「偽の」値だからfalse
です。(文字列はありません。)