2012-07-26 20 views
0

我一直在寻找underscore.js库函数,我注意到一个函数返回元素是否是DOM元素。该功能如下。Underscore.js _.isElement函数

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

能否请你告诉我,为什么!!被用来代替刚刚返回(obj && obj.nodeType == 1)。我想知道是否!!增加任何性能改进。任何想法...

回答

5

!!强制结果是一个布尔值。

例如,如果您通过null,则&&将返回null!!将其转换为false

如果obj是“truthy”,您将得到obj.nodeType == 1这是一个布尔值的结果。

+0

'null'参数是一个很好的例子...谢谢 – scusyxx 2012-07-26 19:12:04