1、!可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true。
!null=true
!undefined=true
!''=true
!100=false
!'abc'=false
2、!!常常用来做类型判断,在第一步 !(变量)之后再做逻辑取反运算,在js中新手常常会写这样臃肿的代码:
判断变量a为非空,未定义或者非空串才能执行方法体的内容
var a;
if(a != null && typeof(a) != undefined && a != ''){
//a有内容才执行的代码
}
实际上我们只需要写一个判断表达:
if(!!a){
//a有内容才执行的代码...
}
就能和上面达到同样的效果。