2013-02-26 46 views
0

在看了Sizzle.js之后,我发现它们有一个断言函数(见下面),它返回!!fn(x)为什么要返回!! var JavaScript?

为什么有人会那样做?这似乎毫无意义,因为它只是"not not"

function assert(fn) { 
    var div = document.createElement("div"); 

    try { 
    return !!fn(div); 
    } catch (e) { 
    return false; 
    } finally { 
    // release memory in IE 
    div = null; 
    } 
} 

有人对此有何看法?

+1

AFAIK它是一种“投”布尔型的方法,但也许有人对此有更多的了解可以详细说明更多.. – pduersteler 2013-02-26 12:12:11

+0

对不起,我确实有一个类似的另一个问题,但找不到它,它可能是一个另一个问题的重复。 – DarkMantis 2013-02-26 12:21:07

回答

3

它确保返回类型是布尔值,没有别的。

+0

谢谢,是的,我刚刚测试过。感谢你的回答! – DarkMantis 2013-02-26 12:12:22

+0

JavaScript中没有'bool',布尔值更合适 – Alexander 2013-02-26 12:14:07