Symbol
1. 符号的基本用法符号需要使用 Symbol()函数初始化。因为符号本身是原始类型,所以 typeof 操作符对符号返回symbol。let sym = Symbol(); console.log(typeof sym); // symbol
2.按照规范,你只要创建 Symbol()实例并将其用作对象的新属性,就可以保证它不会覆盖已有的对象属性,无论是符号属性还是字符串属性。let genericSymbol = Symbol(); console.log(genericSymbol); // Symbol() let fooSymbol = Symbol('foo'); console.log(fooSymbol); // Symbol(foo);
3.Symbol()函数不能与 new 关键字一起作为构造函数使用。let myBoolean = new Boolean(); console.log(typeof myBoolean); // "object" let myString = new String(); console.log(typeof myString); // "object" let myNumber = new Number(); console.log(typeof myNumber); // "object" let mySymbol = new Symbol(); // TypeError: Symbol is not a constructor
4.使用全局符号注册表// 创建全局符号let s = Symbol.for('foo'); console.log(Symbol.keyFor(s)); // foo // 创建普通符号let s2 = Symbol('bar'); console.log(Symbol.keyFor(s2)); // undefined
5.