Burg Asked:2020-08-09 18:01:17 +0000 UTC2020-08-09 18:01:17 +0000 UTC 2020-08-09 18:01:17 +0000 UTC 为什么 0 == [] 给出真值?[复制] 772 我不明白为什么: console.log(0 == []) 显示为真,并且: console.log('0' == []) 说假的,这是什么玄学? javascript 1 个回答 Voted Best Answer Vasily 2020-08-09T18:03:47Z2020-08-09T18:03:47Z 原始发布期间出现的错误已在答案中更正。 这都是关于类型重影的。 在零是字符串的情况下: console.log("0" == []) // "0" == "" // false 该数组将被转换为一个字符串,即“0”和“”将被比较,并且由于一个字符串是空的而第二个不是,我们得到假。 在 0 是数字的情况下,数组也将先转换为字符串,然后再将此字符串转换为 0,因此我们得到 true: console.log(0 == []) // 0 == "" // 0 == 0 // true
原始发布期间出现的错误已在答案中更正。
这都是关于类型重影的。
在零是字符串的情况下:
该数组将被转换为一个字符串,即“0”和“”将被比较,并且由于一个字符串是空的而第二个不是,我们得到假。
在 0 是数字的情况下,数组也将先转换为字符串,然后再将此字符串转换为 0,因此我们得到 true: