-
Symbol定义
- ES6中的添加了一种原始数据类型symbol(已有的原始数据类型:String, Number, boolean, null, undefined, 对象)
- 特点
- Symbol属性对应的值是唯一的,解决命名冲突问题
- Symbol值不能与其他数据进行计算,包括同字符串拼串
- for in, for of遍历时不会遍历symbol属性
-
Symbol使用案例
//案例 1:
var sym = Symbol();
console.log(typeof sym);//symbol
//案例 2: 用作对象的属性(唯一)
let obj = {username: 'kobe', age: 39};
obj[symbol] = 'hello';
console.log(obj);
- 传参标识: Symbol函数接收一个字符串参数,表示描述,主要为了在控制台显示或者转成字符串区分
let symbol = Symbol('one');
let symbol2 = Symbol('two');
console.log(symbol);// Symbol('one')
console.log(symbol2);// Symbol('two')
- Symbol是新增的数据类型,表示独一无二,用来做属性的key,不会被修改覆盖
var sym1 = Symbol();
var sym2 = Symbol();
console.log(sym1 == sym2);//false
//作为属性名只能通过[]
//作为属性名,最主要的就是这个key是独一无二的,不会被覆盖或者改写
var sym1 = Symbol();
var obj = {};
obj[sym1] = 'sym1';
console.log(obj[sym1]);//sym1