返す式。省略した場合、代わりに undefined が返されます。
false 以外を返すことは、for ループの continue ステートメントと同じです。次の繰り返しにすぐにスキップします。
undefined
が に評価されるのでfalse
、以下で反復がスキップされるのはなぜですか?
$.each([1,2,3], function(k, v){
if(v > 1)
return;
console.log(v); //1
});
返す式。省略した場合、代わりに undefined が返されます。
false 以外を返すことは、for ループの continue ステートメントと同じです。次の繰り返しにすぐにスキップします。
undefined
が に評価されるのでfalse
、以下で反復がスキップされるのはなぜですか?
$.each([1,2,3], function(k, v){
if(v > 1)
return;
console.log(v); //1
});
反復はスキップされません。より大きい場合にのみ値を出力します1
。2
と3
はどちらもより大きい1
ため、それらの値はログに記録されないため、配列内のこれらの値の出力は表示されません。
それが.each
関数が行うように設計されているためです。と厳密に等しいかどうかをテストしfalse
ます。ソースコードから:
for (; i < length; i++) {
value = callback.apply(obj[i], args);
if (value === false) {
break;
}
}
ドキュメントが言うように:return
他の値を使用すると、コールバック関数は戻ったところで停止します。あなたreturn false
だけの場合false
、それはすべてを中止します。