1、JavaScript的逻辑非(!)操作符的作用
(逻辑非) 如果操作数能够转换为true则返回false;否则返回true。
2、!!的作用
!!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;
3、!!的使用意义
我们知道JavaScript是一门弱类型的语言,但是,在使用中有时需要强制转化为相应的类型。所以,!!() ,这种写法有将弱类型转化为强类型的作用。
虽然很多情况下JavaScript会有隐式转化的功能,但是人为的将不确定的值强转为确定类型的值是很有必要的,这样才可以针对确定的类型进行相应的操作。可以看到在很多框架中都是有用到这样的方式来进行类型的强转。
var a;
console.log("a = " + a);// a = undefined
var b = !!a;
console.log("b = " + b);// b = false