Js取反運算
取反運算形式上是一個感嘆號,用於將布爾值變為相反值,即true變成false,false變成true。
!true //false !false //true
對於非布爾值的數據,取反運算符會自動將其轉成布爾值。規則是,以下六個值取反后為true,其他值取反后都為false。
undefined null false 0(包括+0和-0) NaN 空字符串('')
這意味着,取反運算符有轉換數據類型的作用。
!undefined // true !null // true !0 // true !NaN // true !"" // true !54 // false !'hello' // false ![] // false !{} // false
上面代碼中,不管什么類型的值,經過取反運算后,都變成了布爾值。
如果對一個值連續兩次取反運算,等於將其轉成對應的布爾值,於Boolean函數的作用都相同。這是一種常用的類型轉換的寫法。
!!x // 等同於 Boolean(x)
上面代碼中,不管X是什么類型的值,經過兩次取反運算后,變成了與Boolean函數結果相同的布爾值。所以,兩次取反就是將一個值轉成布爾值的簡便寫法。
原文鏈接:http://javascript.ruanyifeng.com/grammar/operator.html#toc12 |