javascript - 它是如何通过 JS 进行隐式转换的原因是什么
问题描述
true == "Hello" // False
true 是一个真实值,Hello
也是一个真实值,为什么它输出为 false
隐式转换是如何发生的
解决方案
问“布尔文字true
是否与字符串相同”这个问题的结果"Hello"
是false
因为,这两者是不同的东西。
根据您的论点,因为"Hello"
是一个真实值,并且"World"
是一个真实值,"Hello" == "World"
应该是true
,但这意味着字符串比较将完全没有用。
隐式转换是如何发生的
根据第 7.2.15 条抽象相等比较第 8 条,true
隐式转换为1
. 然后我们进入第 4 条,其中"Hello"
隐式转换为NaN
,然后我们进入第 1 条,它将计算1 === NaN
,即false
。
推荐阅读
- java - Vaadin 8 扩展:java.lang.IllegalStateException:不支持将扩展从一个父级移动到另一个父级
- arrays - 如何通过空行将文本文件拆分为数组?
- puppet - 在 Puppet Enterprise(OpsWorks 托管)上配置 node-purge-ttl(删除过期节点)
- php - 如何将一个表的每次迭代的 id 插入另一个表
- python - 我们可以在本地设置 SAP B1 和 SAP HANA 吗?
- android-studio - 在已构建的 Android 项目中导入 Unity 项目
- node.js - 是否可以在 Hyperledger Fabrics 中使用第三方 CA 进行生产阶段
- c++ - 程序在将输入分配给二维数组的 for 循环中间以状态 -1073741510 终止
- java - HttpServletRequestWrapper 丢失多部分输入值
- java - 如何修复“必须为元素类型“bean”声明属性“default-dependency-check”。Spring 5 中的错误