0

underscore.js ライブラリ関数を調べていて、要素が DOM 要素かどうかを返す関数に気付きました。機能は以下。

_.isElement = function(obj) {
    return !!(obj && obj.nodeType == 1);
};

!!を返す代わりに が使用されている理由を教えてください(obj && obj.nodeType == 1)!!パフォーマンスの向上が追加されるかどうか疑問に思っています。何か案が...

4

1 に答える 1

5

!!結果をブール値に強制します。

nullたとえば、を渡すと、は&&を返しnullます。はそれ!!をに変換しfalseます。

objが「真実」の場合obj.nodeType == 1、ブール値の結果が得られます。

于 2012-07-26T19:01:53.487 に答える