3 回答
TA贡献1877条经验 获得超6个赞
它转换为布尔值。第一个取反!
一次,转换值如下:
undefined
至true
null
至true
+0
至true
-0
至true
''
至true
NaN
至true
false
至true
所有其他表达式
false
然后另一个!
再次否定它。简明投地布尔,完全等同于ToBoolean仅仅是因为!
被定义为它的否定。但是,这里没有必要,因为它仅用作条件运算符的条件,条件运算符将以相同的方式确定真实性。
TA贡献1868条经验 获得超4个赞
var x = "somevalue"
var isNotEmpty = !!x.length;
让我们把它分解成碎片:
x.length // 9
!x.length // false
!!x.length // true
因此,它用于将“ truethy” \“ falsy”值转换为布尔值。
以下值与条件语句中的 false等效:
假
空值
未定义
空字符串""(\ '')
数字0
数量NaN
所有其他值都等于true。
TA贡献2019条经验 获得超9个赞
双重否定将“真实”或“虚假”值转换为布尔值true或false。
大多数人都熟悉使用真实性作为测试:
if (options.guess) {
// runs if options.guess is truthy,
}
但这并不一定意味着:
options.guess===true // could be, could be not
如果您需要将“真实”值强制为真实的布尔值,这!!是一种方便的方法:
!!options.guess===true // always true if options.guess is truthy
添加回答
举报