为啥 new Array() 不等于 []? [复制]
Posted
技术标签:
【中文标题】为啥 new Array() 不等于 []? [复制]【英文标题】:Why new Array() is not equal to []? [duplicate]为什么 new Array() 不等于 []? [复制] 【发布时间】:2019-04-16 10:06:57 【问题描述】:new Array // outputs []
[] // outputs []
但是new Array === []
是假的。为什么会这样?
console.log(new Array === [])
【问题讨论】:
***.com/questions/30820611/…[] === [] // false
如何构造数组并不重要
【参考方案1】:
因为您在比较的每一侧都构造了两个空数组。它们指的不是同一个数组。
【讨论】:
【参考方案2】:因为它们是两个不同的引用。它们可以是两个没有元素的数组,但它们是堆上完全不同的两个对象。
【讨论】:
也许我理解错了,但typeof new Array === typeof []
仍然是真的!!!
@Sanjay 是的,你理解错了。您的问题示例是比较两个单独的对象,但在您的评论中您正在测试类型。
@Sanjay typeof
是什么? typeof 运算符返回一个字符串,指示未计算的操作数的类型,根据developer.mozilla.org/en-US/docs/Web/javascript/Reference/…。话虽如此,上面的表达式为什么是正确的就很清楚了。
two completely different objects
这句话让我迷惑了哈哈
因为typeof
返回一个string
,而且它们是两个对象,所以("object"==="object")
为真以上是关于为啥 new Array() 不等于 []? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥 arr = [] 比 arr = new Array 快?
为啥是List list = new ArrayList,而不直接用ArrayList
python 的PIL中的image 同一数据为啥show()和save()显示和保存的图片不一样?