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