JS为什么[1]==[1]的结果是false?

[1]==[1] //false
{name:1}=={name:1} //false
1==1 //true

据我的理解应该是[1]和{name:1}是引用类型的,而1是标准值类型,引用类型无法做相等判断,请问是不是这样的呢?

阅读 6.2k
6 个回答
<script>
    var a = [1];
    var b = [1];
    // 这里的a和b是两个不同的地址,所以不一样
    console.log(a==b); // false
    
    var c = [1];
    var d = c;
    //这里的d引用的c的地址,所以一样
    console.log(c==d); //true
</script>

引用类型比较的是地址;

js 分值类型和引用类型
(1)值类型:数值、布尔值、null、undefined。
(2)引用类型:对象、数组、函数。

值类型可以比
引用类型不行

引用类型js都不知道内容是什么,用什么样的标准来比较,当然只会去比较地址了,除非能够重写这种比较规则。具体js有没有有没有提供这种重写就不知道了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏