JavaScript 中 雙感嘆號 !! 的作用


作用:!! 將后面的表達式強制轉換為布爾類型的數據(boolean),也就是只能是true或者false;

布爾型的轉換,javascript約定規則為:
結果是 false 的情況:
false、0、undefinded、null、” ”(空字符串) 為 false
結果是 true 的情況:
true、1、”非空字符串”、任意數組,對象,函數(函數是特殊的對象)即使是空數組,空對象 為 true

特別注意:
字符串”0″轉化成bool 為true ,數值0 轉化為bool 為false

!與 !!

解釋:一個!號表示 非 ,兩個 !!號表示 非非,!!基本就只應用於將類型轉換為布爾值。
舉個例子:

var a;
console.log(a); //undefined
console.log(!a); //true 
console.log(!!a); //false

以上代碼定義了一個變量a 並沒有賦值,所以結果是 undefined ,但是使用 !將undefined轉換成了bool,但是undefined本身應該是false,結果是相反的,所以再加一個!使得結果轉換成正確的bool值,
即 !!a 表示把a轉換成bool值:a--> undefined-->false
所以 !!(雙感嘆號)的作用就是將后面的表達式強制轉換為布爾類型的數據(boolean)

小結:

對null與undefined等其他用隱式轉換的值,用一個感嘆號返回的都是true,用兩個感嘆號返回的就是false,所以兩個感嘆號的作用就在於,將這些值轉換為“等價”的布爾值,如果明確設置了變量的值(非null/undifined/0/”“等值),結果就會根據變量的實際值來返回,如果沒有設置,結果就會返回false。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM