重複の可能性:
とは !! JavaScript の (そうではない) 演算子?
$.grep..... の Jquery ライブラリ ソース コード
grep: function( elems, callback, 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 ライブラリのソース コードに対する jquery grep です。彼が inv をデフォルトとして作成する理由は未定義であり、ブール値に変更し、同じことretValを!!callbackに保存してブール値に変更します。問題は、if ステートメントがどのように機能するかです...?? 詳細な説明を教えてください..!! ありがとう。
retVal = !!callback( elems[ i ], i );
if ( inv !== retVal ) {
ret.push( elems[ i ] );
}