它是JavaScript的第七种原始类型:
有别于6种原始类型:
Undefined(未定义)、Null(空值)Boolean、(布尔类型)、Number(数字类型)、String(字符串类型)、Object(对象类型)
ES6新特性中的symbol也是值,但它不是字符串,也不是对象,而是是全新的——第七种类型的原始值。
常见的用途:
symbol是程序创建并且可以用作属性键的值,并且它能避免命名冲突的风险。可用于临时状态的记录,如 "isMove" "isEdit"
// 避免重名
var sy1 = Symbol(),
obj = { sy: 'self sy' };
obj[sy] = 'add sy';
console.log(obj); // {sy: "self sy", Symbol(): "add sy"}
// Symbol() 能传入参数,作用仅用于"打印",并非生成相同对象
Symbol('sy') === Symbol('sy') // false
String(Symbol('sy')) // "Symbol(sy)"
其他博客有详细说明:https://blog.csdn.net/yintianqin/article/details/64122192