一.Symbol是什么
typeof Symbol() === 'symbol',symbol是js中第7种基本类型(本来就有的6种是null, undefined, Number, Boolean, Object, String),不是字符串也不是对象
作用:symbol用来避免命名冲突,解决了篡改(添加属性)原生对象的后遗症,不用担心属性名以后和原生属性名或者其它类库操作冲突
二.语法
获取Symbol有3种方式,如下:
1.Symbol(desc)
返回symbol,desc可选,symbol.toString()返回`Symbol(${desc})`,例如:
var obj = {
a: 1
};
// 不用new,Symbol不是构造器
var safeKey = Symbol();
obj[safeKey] = 'value';
console.log(obj[safeKey]); // value
var anotherSafeKey = Symbol('isAnimActive');
console.log(anotherSafeKey); // Symbol(isAnimActive)