当前位置: 首页 > 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。

相关文章:

  • 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底层基础知识
  • 习近平在第三十五个全国助残日到来之际作出重要指示
  • 美国将与阿联酋合作建立海外最大的人工智能数据中心
  • 龚正会见哥伦比亚总统佩特罗
  • 曾犯强奸罪教师出狱后办教培机构?柳州鱼峰区教育局:正核实
  • 俄方代表团抵达土耳其,俄乌直接谈判有望于当地时间上午重启
  • 阿坝州委书记徐芝文已任四川省政府党组成员