// this is how jquery calls your function
// notice hard comparison (===) against false
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
break;
}
var temp1;
if ( temp1 )... // false
var temp2 = true;
if ( temp2 )... // true
var temp3 = "";
if ( temp3 ).... // false
var temp4 = "hello world";
if ( temp4 )... // true
6 回答
如果你按字面返回
false
,循环只会中断 . 例如:这意味着您可以返回任何其他内容,包括
undefined
,如果您不返回任何内容,则返回该内容,因此您只需使用空的return语句:它是循环继续的原因,所以我希望没有任何可能返回任何东西都不能继续循环 . 除非他们想要强迫每个人开始返回一些东西来保持循环,否则什么都不返回就是一种保持循环的方法 .
通过'return non-false',它们意味着返回任何不能用于布尔值false的值 . 所以你可以返回
true
,1
,'non-false'
,或者你能想到的任何其他东西 .Javascript有点'真实'和'虚假'的想法 . 如果一个变量有一个值,那么通常你会看到它有'真实性' - 无效,或者没有值倾向于'虚假' . 下面的片段可能会有所帮助:
希望这有帮助吗?
此外,值得查看道格拉斯克罗克福德的这些视频
更新:感谢@cphpython发现损坏的链接 - 我现在更新为指向工作版本
The Javascript language
Javascript - The Good Parts
jQuery.noop()可以提供帮助
他们所说的非虚假意味着:
所以这段代码:
会提醒一,二,四,五
不要忘记你有时可以从块的末尾掉下来进行下一次迭代:
而不是像这样实际返回: