JS提升篇:!和!!的区别

281 阅读1分钟

js中 ! 的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值,!可将变量转换成boolean类型,0,null、undefined和空字符串取反都为true,其余都为false。

“!!” ——两个叹号表示把目标值转化为布尔值,相当于使用Boolean()方法

	!!"123"  相当于是   Boolean("123")    //结果为true

	!!{a:1}  相当于是    Boolean({a:1})    //结果为true

if语句中,表达式的结果将被强制为布尔值,通过双重否定(!!)或强制转换为布尔值Boolean是不必要的。

在eslint验证中会报下列错误:

Redundant double negation.eslint(no-extra-boolean-cast)

来源:博客园