【发布时间】:2019-04-16 10:06:57
【问题描述】:
new Array // outputs []
[] // outputs []
但是new Array === [] 是假的。为什么会这样?
console.log(new Array === [])
【问题讨论】:
-
[] === [] // false如何构造数组并不重要
标签: javascript
new Array // outputs []
[] // outputs []
但是new Array === [] 是假的。为什么会这样?
console.log(new Array === [])
【问题讨论】:
[] === [] // false如何构造数组并不重要
标签: javascript
因为您在比较的每一侧都构造了两个空数组。它们指的不是同一个数组。
【讨论】:
因为它们是两个不同的引用。它们可以是两个没有元素的数组,但它们是堆上完全不同的两个对象。
【讨论】:
typeof new Array === typeof [] 仍然是真的!!!
typeof 是什么? typeof 运算符返回一个字符串,指示未计算的操作数的类型,根据developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。话虽如此,上面的表达式为什么是正确的就很清楚了。
two completely different objects这句话让我迷惑了哈哈
typeof返回一个string,而且它们是两个对象,所以("object"==="object")为真