面试题答案
一键面试在JavaScript中,[] == false
结果为true
,这是因为==
操作符在比较不同类型的值时会进行隐式类型转换。具体的数据类型转换过程如下:
-
对象到原始值的转换:
- 当
[]
(数组)与false
比较时,数组是对象类型,首先会尝试将其转换为原始值。 - 数组通过
valueOf()
方法返回自身,由于这不是原始值,接着会调用toString()
方法。 []
调用toString()
方法返回空字符串''
。
- 当
-
布尔值到数字的转换:
false
会被转换为数字,false
转换为数字时结果是0
。
-
字符串到数字的转换:
- 空字符串
''
与数字比较时,会被转换为数字。空字符串转换为数字的结果是0
。
- 空字符串
-
最终比较:
- 此时比较变为
0 == 0
,结果为true
。
- 此时比较变为
所以[] == false
的结果为true
。