首页 > 解决方案 > 它是如何通过 JS 进行隐式转换的原因是什么

问题描述

true == "Hello"  // False

true 是一个真实值,Hello也是一个真实值,为什么它输出为 false

隐式转换是如何发生的

标签: javascript

解决方案


问“布尔文字true是否与字符串相同”这个问题的结果"Hello"false因为,这两者不同的东西。

根据您的论点,因为"Hello"是一个真实值,并且"World"是一个真实值,"Hello" == "World"应该是true,但这意味着字符串比较将完全没有用。

隐式转换是如何发生的

根据第 7.2.15 条抽象相等比较第 8 条,true隐式转换为1. 然后我们进入第 4 条,其中"Hello"隐式转换为NaN,然后我们进入第 1 条,它将计算1 === NaN,即false


推荐阅读