js 乙個兩個三個感嘆號區別

2021-08-18 03:52:14 字數 538 閱讀 8978

今天看到乙個前輩使用了三個感嘆號來判斷值,就查了一下,綜合了幾篇文章的觀點

1、乙個感嘆號

!可將變數轉換成boolean型別,null、undefined和空字串取反都為false,其餘都為true。

!null=true

!undefined=true

!''=true

!100=false

!'abc'=false

2、兩個感嘆號

!!常常用來做型別判斷,在第一步!(變數)之後再做邏輯取反運算

let a;

if(a!=null&&typeof(a)!=undefined&&a!='')

if(!!a)
上面兩種寫法實現的功能一樣,下面一種明顯更簡單

3、三個感嘆號

三個感嘆號沒有什麼意義,和乙個感嘆號的效果是一樣的。一般他們認為!!表示將乙個變數轉為boolean型,再加乙個!是對boolean型取反,和!false或者!true一樣。

小技巧兩個感嘆號(兩個 )連用

兩個 是為了把非0值轉換成1,而0值還是0。如下表 1010 11001 在php持術或其他語言中我們經常會看到感嘆號的用法,有一定程式語言基礎的朋友都知道單個感嘆號的作用是取反的意思,也就是取當前結果的反面,如 a true var dump a 12 34 a true var dump a a...

JavaScript中兩個感嘆號的作用

var o var test o.flag 等效於var test o.flag false alert test 由於對null與undefined用 操作符時都會產生true的結果,所以用兩個感嘆號的作用就在於,如果明確設定了o中flag的值 非null undefined 0 等值 自然tes...

js ES6 中感嘆號 和三個點

乙個感嘆號 最好理解,也是我們經常使用的。可以將變數轉為boolean值,所有的truthy和falsy都可以被轉化,比如null undefined 數字0和空字串取反都為true,其餘都為false。null true undefined true true 0 true 100 false a...