探討js中的雙感嘆號判斷
更新時間:2013年11月11日 11:38:10 作者:
js中的雙感嘆號判斷。在網(wǎng)上查了些資料,他相當于三元運算符,返回boolean值
今天看qunit源代碼,發(fā)現(xiàn)一段很奇怪的代碼,雖然能領(lǐng)會他的意思,但是不明白雙感嘆號起到的作用。
function id( name ) {
return !!( typeof document !== "undefined" && document && document.getElementById ) &&
document.getElementById( name );
}
然后去網(wǎng)上查了些資料,他相當于三元運算符,返回boolean值。
var ret = !!document.getElementById
等價于:
var ret = document.getElementById ? true : false;
當值是非空字符串和非零數(shù)字返回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
復制代碼 代碼如下:
function id( name ) {
return !!( typeof document !== "undefined" && document && document.getElementById ) &&
document.getElementById( name );
}
然后去網(wǎng)上查了些資料,他相當于三元運算符,返回boolean值。
復制代碼 代碼如下:
var ret = !!document.getElementById
等價于:
復制代碼 代碼如下:
var ret = document.getElementById ? true : false;
當值是非空字符串和非零數(shù)字返回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
相關(guān)文章
js寫出遮罩層登陸框和對聯(lián)廣告并自動跟隨滾動條滾動
這篇文章主要介紹了js寫出遮罩層登陸框和對聯(lián)廣告并自動跟隨滾動條滾動,需要的朋友可以參考下2014-04-04寫入cookie的JavaScript代碼庫 cookieLibrary.js
cookieLibrary.js 寫入cookie的JavaScript代碼庫,需要的朋友可以參考下。2009-10-10List the Codec Files on a Computer
List the Codec Files on a Computer...2007-06-06Javascript自執(zhí)行匿名函數(shù)(function() { })()的原理淺析
匿名函數(shù)就是沒有函數(shù)名的函數(shù)。這篇文章主要介紹了Javascript自執(zhí)行匿名函數(shù)(function() { })()的原理淺析的相關(guān)資料,需要的朋友可以參考下2016-05-05