Symbol

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