如果Boolean(1.2)实际上为true,为什么1.2 == true会返回false?

伊姆雷克

仔细阅读=====,我真的无法以对此的解释来说服自己。

我取一个浮点数,并用做==一个Boolean true它返回false但是,当我将浮点数明确转换为布尔值时,它将返回true。==难道不应该首先将1.2转换为布尔值,然后再将其与true进行比较?

> Boolean(1.2)
true
> 1.2 == true
false

另一方面,“整数”将按我期望的那样运行。

> 1 == true
true
拉贾普布(Rajabrabhu Aravindasamy)

如前所述,1.2不会先转换为布尔值。

根据抽象相等比较算法,将执行以下步骤

  • 1.2 == true
  • 1.2 == toNumber(true) (在算法中,第7步)
  • 1.2 == 1 (在算法中,第1步)
  • false

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么3> 2> 1返回false,而1 <2 <3返回true?

为什么1 == 1 == 1返回true,“ 1” ==“ 1” ==“ 1”返回true,而“ a” ==“ a” ==“ a”返回false?

为什么!! 1 ==“ 1”等于true,而!! 2 ==“ 2”等于false?

波浪号对布尔值的影响-为什么在Python中〜True为-2和〜False为-1?

如果[false]则重击;返回true

为什么isinstance([1,2,3],List [str])评估为true?

为什么[False]中的False == False会返回True?

为什么布尔表达式“(1,2,3)== True中的1”为False?

为什么比较长度为1的整数返回true,而长度为2或更大的false则返回false?

为什么语句[1,2] <[2,1]在python中评估为True

为什么“ range(2)== True中的1”评估为False?

为什么1&1 === 1返回true,而2&2 === 2返回false?

如果返回TRUE,则IF返回FALSE

为什么“ [[1> 2]”的计算结果为True?

如果var a = true,则a == 1为true,但a == 2为false。为什么?

为什么[1,1,2] | [] == [1,2]在Ruby中是否为true?

如果语句应该为true时为什么返回false?

如何从一列中选择值的前2%,如果为true,则写入1,如果为false,则写入0?

为什么在Python 1.0中== 1 >>> True; -2.0 == -2 >>> True等?

Symfony2:如果($ boolean == null)为true如果boolean为false

如果1 =='1'// true和1 == true // true,那么为什么1 =='true'// false

Sweetalert2不返回true / false

Python 3.6 - 如果项目与用户输入匹配,如何搜索 2D 列表并返回 true 或 false

ScalaTestFailureLocation 预期 StructField(value1,ArrayType(StringType,true),false) 实际 StructField(val2,ArrayType(StringType,true),true)

如果可以重新排列 str1 字符的一部分以匹配 str2,则返回 true 的最快函数,否则返回 false

如何获得 2 false Boolean 并返回 true 作为结果

为什么 id([1][::-1]) ==id([1]) 返回 True 而 [1][::-1] 是 [1] 返回 False?

逻辑表达式:为什么“str1 in str2 或 str2 not in str1”为我的打印语句返回 True?

在 JavaScript 中,为什么 2 > 1 > 0 true 而 8 > 1 > 1 false?