我们知道JavaScript是一门弱类型的语言,但是,在使用中有时需要强制转化为相应的类型。所以,!!() ,这种写法有将弱类型转化为强类型的作用。
这里提到类型转换不得不提两个概念:显式转换和隐式转化。
显式转化:
const a = parseInt(‘1111111111111’);
const b = Obj.toString();
隐式转化:
var a = '111'+0;//a的结果为数值型;
var b = 111+'';//b的结果为字符串类型;
返回到 !!()。
如:a默认是undefined,!a是true,!!a则是false,所以b的值是false,而不再是undefined。这样写可以方便后续判断使用。
所以,!!(a)的作用是将a强制转换为布尔型(boolean)。