It's our wits that make us men.

JS之symbol

Posted on By He Yan

js中的七种数据类型:

  • boolean
  • null
  • undefined
  • number
  • string
  • object
  • symbol

symbol是七种数据类型之一,六种基础类型之一,表示独一无二的值,用来避免属性命名冲突

  • 生成:调用Symbol方法,传入一个字符串作为参数(其他类型也会转换为字符串),表示对当前Symbol值的描述,使用x.description
let x = Symbol('str');
  • 相同参数调用Symbol方法生成的值是不相等的
  • Symbol值不能与其他类型的值进行运算,却可以显式转换为字符串或布尔值

用途

  1. 作为对象的属性名,保证属性独一无二,防止属性被改写或覆盖
  2. 用于定义一组常量,保证这组常量的值是不相等的
  3. 由于symbol属性不会被常规方法遍历到,可以用于为对象定义非私有却又只用于内部的方法
  • 寻找某一symbol值:Symbol.for(‘str’)——会返回已存在的symbol值或者创建,并登记