Symbol 不是字符串,不是对象,是第七种原始数据类型。每个从Symbol()返回的 symbol 类型的值都是唯一的。一个 symbol 类型的值能作为对象属性的标识符;这是该数据类型仅有的目的。
基本语法
通过以下代码就创建一个 Symbol 类型的值。
1 2 3 4
// Symbol([description]) let s = Symbol("我就是我"); typeof s; // "symbol"
Symbol 中的参数对程序无实际意义,仅供调试助记。不支持语法: new Symbol()
不能自动转换为字符串:
1 2 3 4 5
let s = Symbol(); console.log(" your symbol is" + s); // TypeError: can't convert symbol to string console.log(`your symbol is ${s}`) // TypeError: can't conver symbol to string
应用场景
对象中的私有属性
1 2 3 4 5 6 7 8 9 10 11 12 13
let cat = Symbol("cat") let dog = Symbol("dog") let pig = Symbol("pig")