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