当前位置: 首页 > article >正文

js中原始类型和对象引用

在 JavaScript 中,除了原始类型(例如字符串、数字、布尔值、null 和 undefined)外,其他所有值都是对象。当我们在 Set 中添加一个元素时,该元素可以是原始类型或对象引用。

对象引用是指变量中存储的指向对象内存地址的指针。当我们将一个对象赋值给变量时,实际上是将对象的引用赋值给变量,而非对象本身。例如:

const obj1 = { name: 'Alice' }
const obj2 = obj1

在上面的代码中,obj1obj2 都是指向同一个对象的引用。因此,如果我们将 obj1obj2 添加到 Set 中,实际上是将对象的引用添加到 Set 中,而非对象本身。

需要注意的是,Set 中的唯一性是基于值的,而非引用的。这意味着,如果我们将两个不同的对象引用添加到 Set 中,它们在 Set 中仍然被视为不同的值,即使它们具有相同的属性和值。例如:

const obj1 = { name: 'Alice' }
const obj2 = { name: 'Alice' }

const set = new Set()
set.add(obj1)
set.add(obj2)

console.log(set.size) // 2

在上面的代码中,我们将 obj1obj2 添加到 Set 中,它们虽然具有相同的属性和值,但由于它们是不同的对象引用,因此它们在 Set 中被视为不同的值,Set 的大小为 2。


http://www.kler.cn/a/228847.html

相关文章:

  • 【QT】: 初识 QWidget 控件 | QWidget 核心属性(API) | qrc 文件
  • Spring Boot 3.4.x 和 Micrometer 2.0 的结合 案例 以及使用方法
  • ASP .NET Core 学习(.NET9)配置接口访问路由
  • 【three.js】纹理贴图
  • 如何在不暴露MinIO地址的情况下,用Spring Boot与KKFileView实现文件预览
  • vscode 设置
  • Nginx反向代理WebSocket
  • 【国产MCU】-CH32V307-模拟/数字转换器(ADC)
  • Redis核心技术与实战【学习笔记】 - 14.Redis 旁路缓存的工作原理及如何选择应用系统的缓存类型
  • 深度学习本科课程 实验5 循环神经网络
  • ReactNative实现文本渐变
  • 【Spring连载】使用Spring Data访问Redis(十一)----Redis事务 Transactions
  • 关于可变类型和不可变类型的探究
  • MacOS系统电脑远程桌面控制windows系统电脑【内网穿透】
  • AI监控+智能充电桩系统如何缓解新能源汽车充电难问题
  • nginx去掉前端配置的路径前缀
  • C++ 动态规划 最长上升子序列2 朴素做法的优化
  • MySQL核心查询语句详解
  • Unity类银河恶魔城学习记录1-11 PlayerPrimaryAttack P38
  • RK3588开发板Ubuntu与开发板使用U盘互传
  • 【Linux】生产者消费者模型
  • 静态库和动态库
  • vue全屏,退出全屏、监听ESC退出全屏
  • 01背包问题 动态规划
  • CAN通信----(创芯科技)CAN分析仪----转CANTest使用
  • 2024年2月CCF-全国精英算法大赛题目