为什么空数组等于 false?

3

我正在阅读《你不知道的JavaScript》书籍中的“类型和语法”部分,但是我很难理解这个问题。

为什么一个空数组等于false

console.log(false == []); // true


https://dev59.com/82Ik5IYBdhLWcg3wku9n - beskgar
2
这个回答解决了你的问题吗?空数组似乎同时等于true和false——在谷歌搜索“js empty array equals false”时的第二个结果(另一个链接是第一个结果)。 - Sebastian Simon
@pramodsingh 什么?这与此问题无关。 - Sebastian Simon
但它对我返回了“true”! - Menai Ala Eddine - Aladdin
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness - Ziaullhaq Savanur
1个回答

3
当你执行 [] == false 时,在后台会调用 Array.prototype.toString 方法,以该空数组作为其this上下文,并返回空字符串 ""。在JavaScript中,空字符串是一个假值。

2
@hev1 该规范 称之为“空字符串”,因为只有一个。 - Sebastian Simon
@user4642212 谢谢你告诉我。 - Unmitigated

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接