1. 程式人生 > >js 一個兩個三個感嘆號區別

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

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

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!=''){
    //a有內容才執行的程式碼  
}
if(!!a){
    //a有內容才執行的程式碼...  
}

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

3、三個感嘆號

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