JavaScript中 ! 和 !! 有什么區(qū)別?可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)公司主營(yíng)曲周網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),曲周h5成都小程序開發(fā)搭建,曲周網(wǎng)站營(yíng)銷推廣歡迎曲周等地區(qū)企業(yè)咨詢
js中!的用法是比較靈活的,它除了做邏輯運(yùn)算常常會(huì)用!
做類型判斷,可以用!
與上對(duì)象來(lái)求得一個(gè)布爾值,
1、!
可將變量轉(zhuǎn)換成boolean類型,null、undefined和空字符串取反都為false,其余都為true。
!null=true !undefined=true !''=true !100=false !'abc'=false
2、!!
常常用來(lái)做類型判斷,在第一步!(變量)之后再做邏輯取反運(yùn)算,在js中新手常常會(huì)寫這樣臃腫的代碼:
判斷變量a為非空,未定義或者非空串才能執(zhí)行方法體的內(nèi)容
var a; if(a!=null&&typeof(a)!=undefined&&a!=''){ //a有內(nèi)容才執(zhí)行的代碼 }
實(shí)際上我們只需要寫一個(gè)判斷表達(dá):
if(!!a){ //a有內(nèi)容才執(zhí)行的代碼... }
就能和上面達(dá)到同樣的效果。a是有實(shí)際含義的變量才執(zhí)行方法,否則變量null,undefined和''空串都不會(huì)執(zhí)行以下代碼。
可以總結(jié)出來(lái),“!
”是邏輯與運(yùn)算,并且可以與任何變量進(jìn)行邏輯與將其轉(zhuǎn)化為布爾值,“!!
”則是邏輯與的取反運(yùn)算,尤其后者在判斷類型時(shí)代碼簡(jiǎn)潔高效,省去了多次判斷null、undefined和空字符串的冗余代碼。
看完上述內(nèi)容,你們對(duì)JavaScript中 ! 和 !! 的區(qū)別有進(jìn)一步的了解嗎?如果還想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。