JS中的雙歎號

常常看到這樣的例子:var a;var b = !!a; javascript

a默認是undefined。!a是true,!!a則是false,因此b的值是false,而再也不是undefined,也非其它值,主要是爲後續判斷提供便利。 java

!!通常用來將後面的表達式強制轉換爲布爾類型的數據(boolean),也就是隻能是true或者false;
由於javascript是弱類型的語言(變量沒有固定的數據類型)因此有時須要強制轉換爲相應的類型,相似的如:a=parseInt(「1234″);a=」1234″-0 //轉換爲數字;b=1234+」」 //轉換爲字符串;c=someObject.toString() //將對象轉換爲字符串 spa

其中第1種、第4種爲顯式轉換,二、3爲隱式轉換 對象

布爾型的轉換,javascript約定規則爲 ip

  1. false、undefinded、null、0、」」 爲 false
  2. true、一、」somestring」、[Object] 爲 true

對null與undefined等其餘用隱式轉換的值,用!操做符時都會產生true的結果,因此用兩個感嘆號的做用就在於將這些值轉換爲「等價」的布爾值; 字符串

相關文章
相關標籤/搜索