$.grep 的 Jquery 库源代码.....
grep:函数(元素,回调,inv){
var retVal,
ret = [],
i = 0,
length = elems.length;
inv = !!inv;
// Go through the array, only saving the items
// that pass the validator function
for ( ; i < length; i++ ) {
retVal = !!callback( elems[ i ], i );
if ( inv !== retVal ) {
ret.push( elems[ i ] );
}
}
return ret;
},
在上面的这个例子中,jquery grep 在 jquery 库的源代码上。为什么他将 inv 设为默认值是未定义的,他更改为布尔值,而retVal存储!!callback并更改为布尔值。问题是 if 语句如何工作......??可以给我一些更详细的解释..!! 谢谢。
retVal = !!callback( elems[ i ], i );
if ( inv !== retVal ) {
ret.push( elems[ i ] );
}