js中的七种数据类型:
- boolean
- null
- undefined
- number
- string
- object
- symbol
symbol是七种数据类型之一,六种基础类型之一,表示独一无二的值,用来避免属性命名冲突
- 生成:调用Symbol方法,传入一个字符串作为参数(其他类型也会转换为字符串),表示对当前Symbol值的描述,使用x.description
let x = Symbol('str');
- 相同参数调用Symbol方法生成的值是不相等的
- Symbol值不能与其他类型的值进行运算,却可以显式转换为字符串或布尔值
用途
- 作为对象的属性名,保证属性独一无二,防止属性被改写或覆盖
- 用于定义一组常量,保证这组常量的值是不相等的
- 由于symbol属性不会被常规方法遍历到,可以用于为对象定义非私有却又只用于内部的方法
- 寻找某一symbol值:Symbol.for(‘str’)——会返回已存在的symbol值或者创建,并登记