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)