淺談JavaScript中的“!!”作用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> alert(!!undefined)//false alert(!!null)//false alert(!!0)//false alert(!!"")//fase </script> </head> <body> </body> </html>
js代碼中有時(shí)會(huì)用到“!”,這個(gè)我們知道是取反,對(duì)于布爾類型會(huì)將其值true和false互換,那對(duì)于非布爾類型呢?
對(duì)于非布爾類型,js會(huì)將值先轉(zhuǎn)換成布爾類型,而后取反。
其他類型轉(zhuǎn)布爾型的規(guī)則:
字符串類型值,會(huì)將空值("")轉(zhuǎn)換成false,其余轉(zhuǎn)換成true。
數(shù)字類型,會(huì)將0轉(zhuǎn)換成false,其余為true。
null、undefined會(huì)轉(zhuǎn)換成false。
因此,對(duì)于null、undefined、0、“”都會(huì)被轉(zhuǎn)為flase。
說道這里,應(yīng)該就理解了“!!”的含義了,一個(gè)!是將對(duì)象轉(zhuǎn)為布爾型并取反,兩個(gè)!是將取反后的布爾值再取反,相當(dāng)于直接將非布爾類型值轉(zhuǎn)為布爾類型值。
到此這篇關(guān)于淺談JavaScript中的“!!”作用的文章就介紹到這了,更多相關(guān)JavaScript中的“!!”作用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
flexible.js實(shí)現(xiàn)移動(dòng)端rem適配方案
這篇文章主要介紹了flexible.js實(shí)現(xiàn)移動(dòng)端rem適配方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Javascript前端UI框架Kit使用指南之kitjs事件管理
本文詳細(xì)介紹了Kitjs的事件管理功能,包括普通的Dom事件、Kit如何解決問題、代碼解析、注銷事件等。需要的朋友可以參考下。2014-11-11判斷文字超過2行添加展開按鈕,未超過則不顯示,溢出部分顯示省略號(hào)
這篇文章主要介紹了判斷文字超過2行添加展開按鈕,未超過則不顯示,溢出部分顯示省略號(hào),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04JavaScript實(shí)現(xiàn)的經(jīng)典文件樹菜單效果
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的經(jīng)典文件樹菜單效果,通過JavaScript結(jié)合json數(shù)組實(shí)現(xiàn)文件樹菜單的效果,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-09-09BootStrap selectpicker后臺(tái)動(dòng)態(tài)綁定數(shù)據(jù)
這篇文章主要介紹了BootStrap selectpicker后臺(tái)動(dòng)態(tài)綁定數(shù)據(jù)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06JavaScript使用FileReader實(shí)現(xiàn)圖片上傳預(yù)覽效果
這篇文章主要為大家詳細(xì)介紹了JavaScript使用FileReader實(shí)現(xiàn)圖片上傳預(yù)覽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09