【问题标题】:difference between if (!!variable), and, if (variable)? [duplicate]if (!!variable) 和 if (variable) 之间的区别? [复制]
【发布时间】:2013-03-28 13:05:02
【问题描述】:

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

例如

if (!!variable){...if (variable){...

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

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

谢谢!!

【问题讨论】:

  • stackoverflow.com/questions/4686583/… 基本上是将其转换为布尔值。
  • 这其实是一个不同的问题。仅仅因为另一个问题的一些答案恰好回答了这个问题,并不能使它们实际上相同。

标签: javascript


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 非常感谢! “when trying to obtain the thruthy value”是解释这一点的好方法。谢谢!我在检查变量以外的东西是否存在时看到了这个,所以这是有道理的。
    猜你喜欢
    • 1970-01-01
    • 2021-08-19
    • 2013-07-22
    • 2012-10-27
    • 1970-01-01
    • 2019-11-16
    • 2016-11-02
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多