3

使用双重否定和根本不使用它之间有什么区别(在 JS 中)!!

例如

if (!!variable){... 对比if (variable){...

我知道有时我使用第二种方法收到警告..

什么时候应该使用每个?每个人何时会在控制台中发出警告?(对于变量、对象、数组等)

谢谢!!

4

2 回答 2

3

分配它是有区别的,但在条件语句中使用它却没有。使用的原因!!是因为第一个!会将你的变量转换为它的真实评估,然后not是它。所以“你好”变为真,然后被否定,变为假,第二个!将否定假,产生真。当试图从变量中获取 thruthy 值时,这可能是可取的。但是,在 if 语句中这样做并没有什么好处。

于 2013-04-05T23:54:29.563 回答
3

在这种特殊情况下,没有区别。其实!!variable是浪费。

但是在更一般的情况下,它将变量转换为布尔值。就我个人而言,我只在调试时发现这很有用,并了解哪些值是真值和假值。

于 2013-04-05T23:55:13.380 回答