Javascript 如果布尔值(1.2)实际为真,为什么1.2==true返回false?
回想一下Javascript 如果布尔值(1.2)实际为真,为什么1.2==true返回false?,javascript,boolean,type-conversion,equals-operator,Javascript,Boolean,Type Conversion,Equals Operator,回想一下=和=,我真的无法用一个解释说服自己 我取一个浮点数,用一个布尔值做一个=。它返回false。但当我明确地将浮点数转换为布尔值时,它返回true。==是否应该首先将1.2转换为布尔值,然后将其与另一侧的true进行比较 > Boolean(1.2) true > 1.2 == true false 另一方面,“整数”的行为与我预期的一样 > 1 == true true 如上所述,不会首先将1.2转换为布尔值 根据,将执行以下步骤 1.2==true 1.2==t
=
和=
,我真的无法用一个解释说服自己
我取一个浮点数,用一个布尔值做一个=
。它返回false
。但当我明确地将浮点数转换为布尔值时,它返回true。==是否应该首先将1.2转换为布尔值,然后将其与另一侧的true进行比较
> Boolean(1.2)
true
> 1.2 == true
false
另一方面,“整数”的行为与我预期的一样
> 1 == true
true
如上所述,不会首先将
1.2
转换为布尔值
根据,将执行以下步骤
1.2==true
(在算法中,步骤7)1.2==toNumber(true)
(在算法中,步骤1)1.2==1
false
=
运算符比较值时,基于AEC算法,它的两种类型都将强制为数字类型。我已经给出了原始算法的步数,看看那些。这会让你牢牢掌握这个概念。好吧,我在看一个视频课程,讲述者对此进行了评论,他解释说数字被转换,而不是布尔值。谢谢你的推荐。@Barmar Troll alert,实际上是这门课:我不认为问问题是不好的,尤其是在有疑问的时候。我只是开了个小玩笑,很抱歉打扰你。你能告诉我它在哪段视频里吗?我不会花两个小时去找它。