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一样。