javascript - 为什么 false == "false"是假的?

标签 javascript

我仍在学习 javaScript 的基础知识,我不明白为什么会这样。

具有类型强制 false == "false" 将被转换为:

false == false //true

"false" == "false" //true

那么,为什么 false == "false" 是假的?

最佳答案

你误解了 type conversion rules . false 在比较之前不会转换为字符串。

If Type(x) is Boolean, return the result of the comparison ToNumber(x) == y.

false 转换为数字,给出:

+0 == "false"

……然后……

If Type(x) is Number and Type(y) is String, return the result of the comparison x == ToNumber(y).

"false" 被转换为一个数字,给出:

+0 == NaN

…这是错误的。

关于javascript - 为什么 false == "false"是假的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38814212/

相关文章:

javascript - 与 Jasmine : mocking factory services

javascript - 如何使用色酿秤

javascript - 在 FullPage.js 部分添加自定义菜单

javascript - 收到第一条消息后分离 Node 子进程

javascript - Chrome 正在吞噬我的第一个内部 <form>——为什么?

javascript - 引用外部脚本和资源而不是下载它们 "locally"到您的服务器是否安全?

javascript - Jquery:TypeError: $(...)._TMS 不是函数

javascript - intersectsBox 在期望 false 时返回 true

javascript - 在javascript中复制对象数组

javascript - 排除站点 anchor 链接 JavaScript