[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
相关推荐
flower_tomb18 小时前
对浏览器事件机制的理解
前端·javascript·vue.js
用户4582031531718 小时前
使用Trae做一个简单的天狗食日动画效果试试
前端·trae
普通码农18 小时前
Vue Element Plus X 部署后资源加载失败问题
前端
超人不会飛18 小时前
仿豆包 H5应用核心模板:用Vue快速复刻大模型对话体验
前端·javascript·vue.js
程序张18 小时前
Vue3+Vite 现代化前端框架👊打破 Chrome 83 内核限制
前端·javascript·vue.js
拜无忧18 小时前
【教程】Vue中级转React终极指南-理解Vue和React的差异
前端·vue.js·react.js
web前端12318 小时前
Android开发四大组件详解
前端
木辰風18 小时前
idea npm install 很慢(nodejs)
前端·npm·node.js
阿笑带你学前端18 小时前
Drift数据库开发实战:类型安全的SQLite解决方案
前端·flutter
FE_C_P小麦18 小时前
Git 常用指令
前端·后端·github