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

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.dtcms.com/a/8047.html

相关文章:

  • Java_简单模拟实现ArrayList_学习ArrayList
  • 交友系统---让陌生人变成熟悉人的过程。APP小程序H5三端源码交付,支持二开。
  • 使用 PyTorch 构建 NLP 聊天机器人
  • R语言学习case10:ggplot基础画图Parallel Coordinate Plot 平行坐标图
  • VSCode 设置代理
  • 【Linux系统 01】Vim工具
  • Django的web框架Django Rest_Framework精讲(二)
  • 机器视觉系统设计:视觉系统中的成像基准
  • 蓝桥杯嵌入式第七届真题(完成) STM32G431
  • 将xyz格式的GRACE数据转成geotiff格式
  • Http请求Cookie失效问题
  • Spring Boot 依赖管理:spring-boot-dependencies vs spring-boot-starter-parent
  • 记录一下怎么重装服务器
  • Linux的7个运行级别
  • 明天是几号(c++题解)
  • 十大设计模式总结版
  • go使用gopprof分析内存泄露
  • 键入网址到网页显示,期间发生了什么?
  • NLP_语言模型的雏形N-Gram
  • Linux底层基础知识
  • 三层交换组网实验(华为)
  • Debian系统显示中文
  • 了解 WebSocket 和 TCP :有何不同
  • MSVC++远程调试
  • Google Play上架:因行为透明度被拒审或下架的政策自查(基于区块链的内容)
  • 【Linux】打包压缩跨系统/网络传输文件常用指令完结
  • 26条prompt规则应用于大模型
  • 【C/C++ 11】贪吃蛇游戏
  • Java入门高频考查基础知识8(腾讯18问1.5万字参考答案)
  • STM32--HAL库定时器学习记录(易懂)--持续学习