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

【ES6】JavaScript中的Symbol

Symbol是JavaScript中的一种特殊的、不可变的、不可枚举的数据类型。它通常用于表示一个唯一的标识符,可以作为对象的属性键,确保对象的属性键的唯一性和不可变性。

Symbol.for()是Symbol的一个方法,它用于创建一个已经注册的Symbol对象。当使用Symbol.for()创建Symbol对象时,会首先检查已经注册的Symbol对象中是否存在与给定字符串相同的Symbol,如果存在,则返回该Symbol对象,否则创建一个新的Symbol对象并注册到已经注册的Symbol对象中。

<!DOCTYPE html><script>// 创建Symbol对象
const sym1 = Symbol();
const sym2 = Symbol('hello');
const sym3 = Symbol('world');
const sym4 = Symbol('world');// Symbol对象的唯一性和不可变性
console.log(sym1 === sym2); // false
console.log(sym2 === sym3); // false
//Symbol('world')每次都新建一个Symbol保证了不重复
console.log(sym3 == sym4); //false// Symbol.for()创建Symbol对象,会全局注册
const sym5 = Symbol.for('world');
const sym6 = Symbol.for('world');// Symbol.for()查找已注册的Symbol对象
console.log(sym5 === sym4); // false
console.log(sym5 === sym6); // true// Symbol对象可以被作为属性名,确保属性名的唯一性
const obj = {};
obj[sym1] = 'value 1';
obj[sym2] = 'value 2';
obj[sym3] = 'value 3';
obj[sym4] = 'value 4';
obj[sym5] = 'value 5';
obj[sym6] = 'value 6';console.log(obj[sym1]); // 'value 1'
console.log(obj[sym2]); // 'value 2'
console.log(obj[sym3]); // 'value 3'
console.log(obj[sym4]); // 'value 4'
console.log(obj[sym5]); // 'value 6' sym5和sym6相同
console.log(obj[sym6]); // 'value 6'</script>

在这里插入图片描述

http://www.lryc.cn/news/147691.html

相关文章:

  • 理解React页面渲染原理,如何优化React性能?
  • 数据通信——传输层TCP(可靠传输机制的滑动窗口)
  • Mycat之前世今生
  • Linux- 重定向标准输出(stdout)和标准错误(stderr)
  • PostgreSQL分区表
  • android framework之Applicataion启动流程分析(二)
  • django静态文件无法访问解决方案
  • WIndows 配置多版本python环境,非常清晰明了
  • Leetcode每日一题:1267. 统计参与通信的服务器(2023.8.24 C++)
  • c++(8.28)菱形继承,虚继承,多态,抽象类,模板+Xmind
  • 安装部署JavaFX和IDEA添加JavaFX的详细步骤
  • MAC电脑外放没有声音解决方案
  • Spring源码分析(八)CreateBean与DoCreateBean
  • iSCSI存储服务器
  • 信息技术02--初/高中--分类选择题(377道题与解析)
  • java --- 枚举类
  • nvm和volta对node版本控制的区别
  • 高斯消元解线性方程组
  • 【linux命令讲解大全】032.介绍 Linux 中的 rcp 命令:简化主机间文件复制操作
  • Mysql索引、事务与存储引擎 (事务、MySQL 存储引擎)
  • Doris(六)--通过 Canal 同步数据到 Doris 中
  • 快手Java一面,全是基础
  • 未来芯片设计领域的药明康德——青芯如何在N个项目间游走平衡
  • 【跟小嘉学 Rust 编程】十九、高级特性
  • pandas由入门到精通-数据清洗-缺失值处理
  • Redis 教程 - 主从复制
  • [递归] 子集 全排列和组合问题
  • ELK安装、部署、调试(四)KAFKA消息队列的安装和部署
  • 半导体晶片机器视觉测量及MARK点视觉定位
  • ranger无法同步用户问题解决