[es6] symbol 是个啥东西,具体有什么用,有哪些应用场景,js内置的对于symbol 的应用有哪些

首先请看官网,然后明确下面几个基本知识点

  1. Symbol 是 es6 提出,是基本数据类型
  2. typeof SymbolInstance = symbol
  3. 不支持 new 语法
  4. 每个 Symbol() 返回的值都是唯一的
  5. 可以作为对象的属性,且是唯一的属性
  6. 有内置通用 symbol,可以使用属性访问
    1. 迭代
      1. Symbol.iterator 返回一个对象默认迭代器的方法,被 for ... of 使用
      2. 可以显式使用 arr[Symbol.iterator]()
    2. 正则表达式
      1. Symbol.match 对字符串进行匹配的方法,也用于确定一个对象是否作为正则表达式使用,被String.prototype.match 使用
    3. Symbol.toPrimitive
      1. 一个对象转为基本数据类型的方法【彻底搞懂隐式转换
    4. Symbol.toStringTag
      1. 用于对象的默认描述的字符串值,被 Object.prototype.toString 使用

Symbol 应用场景

  1. 创建唯一的对象键,作为对象的唯一属性,避免名字冲突,也不怕和原型上的变量冲突了
  2. 作为对象 / class 的私有成员,因为只有持有对应符号的引用的代码才能访问它们
  3. 隐藏性,不会再 for...in 循环中,也不会被 Object.keys 等方法返回
  4. 使用内置符号,如 Symbol.iterator用于迭代器
  5. 在 ajax 中使用 symbol
相关推荐
凌览5 分钟前
Claude半个月崩7次!算力不够自己造,强制实名制封
前端·后端
sTone8737519 分钟前
跨端框架通信机制全解析:从 URL Schema 到 JSI 到 Platform Channel
android·前端
蜡台20 分钟前
vue params传参刷新网页数据丢失解决方法
前端·javascript·vue.js
sTone8737521 分钟前
Java 注解完全指南:从 "这是什么" 到 "自己写一个"
android·前端
文心快码BaiduComate26 分钟前
里程碑突破 | 文心快码中标国家开发银行代码研发助手项目
前端·后端·架构
霍理迪36 分钟前
axios的封装
前端
夜焱辰36 分钟前
CreatorWeave:一个本地优先的浏览器 AI 创作工作空间
前端·agent
wscqs38 分钟前
Superpowers 与 everything-claude-code 与 ui-ux-pro-max-skill 这些怎么合并起来一起用
前端
大转转FE42 分钟前
转转前端周刊第192期: 财务数仓 Claude AI Coding 应用实战
前端·人工智能
weixin_471383031 小时前
React Flow + Zustand 搭建工作流编排工作台
前端·react.js·前端框架