登录
首页 >  文章 >  前端

为什么 == 为 true 但 {} === {} 为 false

时间:2025-01-21 18:25:07 175浏览 收藏

大家好,今天本人给大家带来文章《为什么 == 为 true 但 {} === {} 为 false》,文中内容主要涉及到,如果你对文章方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

为什么 == 为 true 但 {} === {} 为 false

JavaScript 的严格相等运算符 (===) 乍看简单,却暗藏玄机。本文将解释为何 1 === 1 为真,而 {} === {} 为假。

数据类型:基元与对象

理解这一差异的关键在于 JavaScript 如何处理基元类型和对象类型。

基元类型: 包括数字、字符串、布尔值、undefinednull 和 Symbol。使用 === 比较基元时,JavaScript 直接比较其值。1 === 1 为真,因为它们的值相同。

对象类型: 对象存储在堆内存中。每次创建对象,都会分配新的内存地址。=== 比较对象时,比较的是其内存地址,而非内容。{}{} 是两个不同的对象,位于不同的内存地址,因此 {} === {} 为假。

内存与堆:更深入的理解

下图简要说明:

const objA = { name: "Alice" };
const objB = { name: "Alice" };

// 浅比较
console.log(objA === objB); // false

// 深比较
const isEqual = JSON.stringify(objA) === JSON.stringify(objB);
console.log(isEqual); // true

结论

1 === 1 为真,因为基元按值比较;{} === {} 为假,因为对象按引用比较。掌握这一区别,有助于编写更健壮的 JavaScript 代码。

终于介绍完啦!小伙伴们,这篇关于《为什么 == 为 true 但 {} === {} 为 false》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>