【发布时间】:2017-12-20 03:28:29
【问题描述】:
let x = [];
if(x==0)
console.log('Hello')
about 代码打印 'Hello'
let x = [ 1 ];
if(x==0)
console.log('Hello');
上面的代码没有打印'Hello'。
为什么?
【问题讨论】:
-
许多相关问题都包含答案。请参阅 Why does {} == false evaluate to false while [] == false evaluates to true? 和 If both [0] == 0 and 0 == [[0]] are true than why is [0] == [[0]] false?。
[] == 0和[] == false相同,因为false被转换为0。 -
@DenIsahac:这怎么是重复的?
-
[] 是假的,0 是假的。假==假===真。很简单的伙伴。
-
@Mardoxx:除了
[]不是假的。这不是那么简单。看看我在第一条评论中发布的链接。 -
@Mardoxx 当比较不同类型的对象时,其中一个被转换为另一种类型。它不只是比较他们的真实性。
标签: javascript