1、! 可将变量转换成boolean类型,null、undefined和空字符串取反都为true,其余都为false,也可用作boolean的取反。
console.log(!null) // true
console.log(!undefined )// true
console.log(!'') // true
//布尔值取反
console.log(!false) // true
console.log(!true) // false
2.!! 常用来做类型判断,在第一步!强制转换后之后再做逻辑取反运算,将非布尔类型转为布尔类型
console.log(!!undefined)//false
console.log(!!null)//false
console.log(!!0)//false
console.log(!!"")//fase
console.log(!!"123")//true
console.log(!!123)//true
当你不确定一个变量的类型时,并且该变量不希望为null、undefined 、''时,之前会这样:
if(XXX!=null && typeof(XXX)!=undefined && XXX!=''){
//逻辑代码
}
现在可以利用!!:
if(!!XXX) {
//逻辑代码
}