JavaScript 中的 !!

weixin_34290000發表於2017-10-16

!! 一般用來將後面的表示式轉換為布林型(boolean)。

var obj = {
  flag: true
};
var temp = !!obj.flag; //等效於 var temp = obj.flag || false;

由於對 nullundefined 用 ! 操作符時結果都是 true

> !null     
true        
> !undefined
true        

所以用兩個感嘆號的作用就在於:如果明確設定了 objflag 的值(非 null/undefined/0/"" 等值),自然 temp 就會取跟 obj.flag 一樣的值;如果沒有設定,temp 就會預設為 false,而不是 nullundefined

> !!null     
false        
> !!undefined
false
> !!''
false      
> !!0
false  

相關文章