首页 > 试题广场 >

[] == [] 输出的结果是

[问答题]

[] == [] 输出的结果是?为什么?

false

var a = [], b = [];
console.log(a==b);//false
原始值的比较是值的比较:
它们的值相等时它们就相等(==)
它们的值和类型都相等时它们就恒等(===)

对象的比较并非值的比较,而是引用的比较:
即使两个对象包含同样的属性及相同的值,它们也是不相等的
即使两个数组各个索引元素完全相等,它们也是不相等的

发表于 2020-03-24 14:14:37 回复(0)
  • []==[]输出的结果为false;
  • 首先,‘==’运算符比较的是两个操作数是否相等,(这里不是指严格相等),两个操作数都是空数组,都是Object对象。但是对象的比较并非是值得比较,即使这两个都是空数组(包含同样的属性和数值都为空),但是这两个数组在引用上都不是同一个数组,所以他们也是不相等。
这就涉及到不可变的原始值和可变的对象引用、以及‘==’运算符和‘===’运算符对于对象的比较规则的知识点。
发表于 2020-02-16 21:18:44 回复(1)
数组的存储是堆空间,所以数组的标识存放的只是对应数据的地址值,所以数组之间都不完全相等,题目中的两个数组只是值相等,地址值不同,所以答案false
发表于 2020-02-10 18:55:47 回复(0)
结果:false
原因:A==B 当AB均为对象时执行的是 A===B比较,引用类型比较内存地址,因此为false 

发表于 2020-05-05 17:36:27 回复(0)
1.他们两个都引用类型,但是引用地址不同 2. == 是对于值的比较
发表于 2020-06-24 19:10:15 回复(0)
false
发表于 2020-03-25 13:01:18 回复(0)
false
存放在不同的堆中
发表于 2020-02-20 16:29:25 回复(0)