[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
相关推荐
snow@li9 分钟前
前端:前端/浏览器 可以录屏吗 / 实践 / 录制 Microsoft Edge 标签页、应用窗口、整个屏幕
前端·浏览器录屏·前端录屏·web录屏
李贺梖梖15 分钟前
CSS学习
前端·css
蚂小蚁24 分钟前
一文吃透:宏任务、微任务、事件循环、浏览器渲染、Vue 批处理与 Node 差异(含性能优化)
前端·面试·架构
狼性书生36 分钟前
uniapp实现的Tab 选项卡组件模板
前端·uni-app·vue·组件·插件
吃饺子不吃馅41 分钟前
前端画布类型编辑器项目,历史记录技术方案调研
前端·架构·github
拜晨1 小时前
使用motion实现小宇宙贴纸墙效果
前端·交互设计
梦想平凡1 小时前
情怀源代码工程实践(加长版 1/3):确定性内核、事件回放与最小可运行骨架
开发语言·javascript·ecmascript
拜晨1 小时前
使用motion实现小宇宙节目广场的效果
前端·交互设计
知花实央l2 小时前
【Web应用实战】 文件上传漏洞实战:Low/Medium/High三级绕过(一句话木马拿webshell全流程)
前端·学习·网络安全·安全架构