为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 '1' == true 返回 true,而 '2' == true 在 Javascript

为什么 '1' == true 返回 true,而 '2' == true 在 Javascript

慕哥6287543 2021-08-26 14:20:22
我对 Javascript 还很陌生,我想知道为什么 '1' == true 返回 true 但 '2' == true 返回 false。来自 Java 背景,Javascript 中的类型强制很难掌握
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

我的回答是基于这张表。

在您的示例中,操作数 A 是字符串,操作数 B 是布尔值。然后它调用ToNumber它们并比较它们的严格 ( ===) 相等性。

ToNumber('2') === 2,但是ToNumber(true) === 1,所以两者不相等。

对实现的更深入解释是here。


查看完整回答
反对 回复 2021-08-26
?
炎炎设计

TA贡献1808条经验 获得超4个赞

基本上它归结为 Javascript 中的真值和假值。

因为您的比较是用 == 完成的,所以这基本上意味着只是值比较。

在 Javascript 中,true 的值等于 1,就像 false 的值等于 0 一样。此外,鉴于您使用 == 而不是 ===,它与 1 == '1' 相同,但 1 !== '1'。


查看完整回答
反对 回复 2021-08-26
  • 2 回答
  • 0 关注
  • 556 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信