是否有任何类型转换的优先顺序?

时间:2014-01-28 03:51:29

标签: javascript

知道javascript在需要时自动转换类型,例如“8”*“3”= 24;但是在比较两种不同类型的j时,它们首先转换为什么类型。

让我举个例子。

enter image description here

这里当字符串“true”与布尔值true进行比较时,其中一个必须转换为其他类型。这里的优点是什么,将“true”字符串转换为boolean true返回一个布尔对象,或者boolean true转换为“true”字符串。

在上面我猜真正的字符串被转换为布尔值true,这是使语句为false的对象,那么为什么不反过来在类型转换中有优势呢?

1 个答案:

答案 0 :(得分:1)

11.9.3 The Abstract Equality Comparison Algorithm

基本上归结为: ==是自己的魔力;如果有的话,它赞成 ToNumber转换。此转换是等式运算符评估的结果

"true" == true
"true" == 1      // by rule #7   - ToNumber(true)
0 == 1           // by rule #5   - ToNumber("true")
false            // by rule #1c

在这种情况下,ToBoolean操作只是未使用,尽管在​​真实性很重要的其他情况下 - 例如使用逻辑布尔运算符或条件表达式。