1.Symbol概述
ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。 注意: Symbol 值不能与其他类型的值进行运算,会报错。但是,Symbol 值可以显式转为字符串和布尔值,但是不能转为数值。
2. Symbol.prototype.descripion
3. Symbol可以作为标识符,即属性名
Symbol 值作为对象属性名时,不能用点运算符。
4. 消除魔术字符串(有点不太会)
概念:在代码之中多次出现、与代码形成强耦合的某一个具体的字符串或者数值。
5. 属性名的遍历
Symbol 作为属性名,遍历对象的时候,该属性不会出现在for…in、for…of循环中,也不会被Object.keys()、Object.getOwnPropertyNames()、JSON.stringify()返回。 Object.getOwnPropertySymbols()方法,可以获取指定对象的所有 Symbol 属性名。