【问题标题】:Why javascript comparison ("true" == true) is false? [duplicate]为什么javascript比较(“真”==真)是假的? [复制]
【发布时间】:2020-09-04 22:02:32
【问题描述】:

我正在尝试理解以下情况:

> "1" === 1
false

> "1" == 1
true

> true === 1
false

> true == 1
true

> "true" === true
false

> "true" == true
false

为什么 javascript 比较 ("true" == true) 是假的?

另外,比较这个的正确方法是什么?

【问题讨论】:

    标签: javascript ecma


    【解决方案1】:

    比较中的布尔值将隐式转换为数字 (0/1),因此 1=true 为真,但 "true" == true (1),因此字符串不能等于数字, 它是假的

    【讨论】:

      【解决方案2】:

      问题已在here 之前提出。

      本质上,"true" 被转换为 NaN,而true 被转换为 1(这是一个布尔值。因此,它们是不同的。

      【讨论】:

        猜你喜欢
        • 2015-12-05
        • 2018-07-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多