# 前言
ES5中对象的属性名都是字符串,容易造成重名,污染环境
# Symbol是什么
let s = Symbol();
let obj = {firstName:"alan",lastName:"ngai"}
//两种添加属性的方式
obj.nickName = "jack";
obj[s] = "john";
console.log(obj);
//{firstName:"alan",lastName:"ngai",nickName:"jack",symbol():"john"}
- 是一种新增的基本类型
- Symbol的值是唯一的,用于解决命名冲突
- Symbol不能计算,也不能进行拼接字符串
- for in、for of不会遍历symbol
# 如何标识Symbol
let one = Symbol('one');
let two = Symbol('two');
console.log(one);// Symbol(one)
console.log(two);// Symbol(two)
← promise Iterator遍历器 →