今天看到乙個前輩使用了三個感嘆號來判斷值,就查了一下,綜合了幾篇文章的觀點
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...