2013-02-26 43 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