【问题标题】:Difference between !! vs direct check on value区别!! vs 直接检查价值
【发布时间】:2020-08-12 21:55:24
【问题描述】:

当我们用 !! 检查一个值时会有什么不同或没有它。

例子:-

a) if(!!Value) { do this } => 我知道这个条件会返回一个布尔值

b) if(Value) { do this } ==> 这将检查 value 里面是否有任何东西

但是它们的用法会有什么不同呢?如果不是上述情况,在什么情况下它们都会有所作为?

【问题讨论】:

  • stackoverflow.com/q/784929 我很确定!! 完全没有意义,因为if 已经检查它是否是真/假
  • 没有区别。两者都将以相同的方式进行评估。 if (!!Value) 更清楚地表明 Value 不是一个布尔值,因此它可能有助于让处理该代码的人期待什么,但最终没关系,两者都是可以接受的。

标签: javascript typescript typescript-typings typescript2.0


【解决方案1】:

在 JavaScript 或 TypeScript 中使用 if(value)if(!!value) 没有区别

!! 将强制任何以下值转换为布尔类型。

但是,if 中的表达式无论如何都会被 JavaScript / TypeScript 强制转换为布尔值。

在 JavaScript 中,将被强制转换为 false(“falsy 值”)的值是 false0""NaNnull、@ 987654331@.

任何其他都是真实的(包括空数组和对象),即将被强制为true

【讨论】:

    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 2011-10-29
    • 1970-01-01
    相关资源
    最近更新 更多