JavaScript之相等与恒等以及对象的比较(前端面试准备)

JavaScript之相等与恒等以及对象的比较

  • ==:值相等时即为true
  • ===:值和类型都相等时即为true

对象的相等

  • 在自己写代码的时候,发现就算深拷贝后,得到的两个数组的内容完全相同,两个数组也不相等;为什么呢?
let arr1=[1,2,3];
let arr2=[];
for(let i of arr1)
    arr2.push(i);
console.log(arr1,arr2); =>[1,2,3]、[1,2,3]
console.log(arr1==arr2); =>false
  • 后来在继续观察后,发现除了数组,只要是引用类型的数据都是同样的结果。(Object、Array、Function等)
  • 而在JS中对象的比较是引用的比较,当且仅当引用同一个基对象时,才相等。
let arr1=[1,2,3];
let arr2=arr1; //浅拷贝:引用的拷贝
console.log(arr1,arr2); =>[1,2,3]、[1,2,3]
console.log(arr1==arr2); =>true
发布了7 篇原创文章 · 获赞 0 · 访问量 103

猜你喜欢

转载自blog.csdn.net/weixin_42711551/article/details/105089310
今日推荐