为什么 1.2 == true 返回 false 如果布尔值 (1.2) 实际上是真的
Why 1.2 == true returns false if Boolean(1.2) is actually true?
复习==
和===
,我真的无法用对此的解释来说服自己。
我取一个浮点数,用Boolean
true
做一个==
。它返回false
.但是当我显式地将浮点数转换为布尔值时,它返回 true。== 实际上不应该首先将 1.2 转换为布尔值,然后将其与另一边的 true 进行比较吗?
> Boolean(1.2)
true
> 1.2 == true
false
另一方面,"整数"的行为将符合我的预期。
> 1 == true
true
如上所述1.2
不会先转换为布尔值。
根据抽象相等比较算法,将执行以下步骤
-
1.2 == true
-
1.2 == toNumber(true)
(在算法中,步骤7) -
1.2 == 1
(在算法中,步骤1) -
false
相关文章:
- 指令加载真的很长,检查加载时间的方法
- call()和apply()实际上是用来欺骗方法处理类似数组的对象的
- JS,“;对象”;,这个和那个.来自蟒蛇这真的让我很困惑.(双关语)
- 为什么这是真的:parseInt(1111111111111,2)===parseInt(111111111111,2)
- (false==false==true)怎么可能是真的
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- Javascript.闭包和dynamic'这'实际上具有约束力
- 页面可见性API实际上支持操作系统屏幕锁定吗
- 为什么typeof的数组的数组的未定义值返回为“0”;未定义的“;我的条件不认为是真的
- coffescript/javascript函数数组的行为真的很奇怪
- 实际上什么是redux
- Passport.js`isAuthenticated()`不一致的行为;当它应该是真的时候是假的
- 真的没有办法在Firefox中自动杀死没有响应的脚本吗
- html() 真的取代了 html 代码吗?
- 有没有办法检测用户是否真的远离计算机
- 饶恕是真的就是假的
- Extjs form.reset() 不作为 trackResetOnLoad 工作是真的
- 在 JavaScript 中真的需要提升以实现相互递归吗?
- 为什么 1.2 == true 返回 false 如果布尔值 (1.2) 实际上是真的
- 函数将信息返回到控制台日志,但实际上并没有执行应有的操作