关于Symbol的理解
- Symbol类型是都是基本类型。所以不会存储在堆里面
- Symbol是具有唯一性,即使在字面层面他们是相同的
- Symbol可以使用Object(Symbol对象),进行包装
- 一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的
// 创建一个 symbol 并放入 Symbol 注册表,key 为 "foo"
var globalSym = Symbol.for("foo");
Symbol.keyFor(globalSym); // "foo"
// 创建一个 symbol,但不放入 symbol 注册表中
var localSym = Symbol();
Symbol.keyFor(localSym); // undefined,所以是找不到 key 的
// well-known symbol 们并不在 symbol 注册表中
Symbol.keyFor(Symbol.iterator) // undefined