js雙感嘆號判斷


 今天看qunit源代碼,發現一段很奇怪的代碼,雖然能領會他的意思,但是不明白雙感嘆號起到的作用。

function id( name ) {
    return !!( typeof document !== "undefined" && document && document.getElementById ) &&
        document.getElementById( name );
}

  然后去網上查了些資料,他相當於三元運算符,返回boolean值。

var ret = !!document.getElementById

等價於:

var ret = document.getElementById ? true : false;

  

  當值是非空字符串和非零數字返回true,當值是空字符串、0或者null返回false。

復制代碼
var a = " "; alert(!!a);   //true
var a = "s"; alert(!!a);   //true
var a = true; alert(!!a);   //true
var a = 1; alert(!!a);   //true
var a = -1; alert(!!a);   //true
var a = -2; alert(!!a);   //true
 
var a = 0; alert(!!a);   //false
var a = ""; alert(!!a);   //false
var a = false; alert(!!a);   //false
var a = null; alert(!!a);   //false


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM