ES6-07:新增數據類型—Symbol

ES5中規定JavaScript有6種數據類型:Undefined、Null、String、Boolean、Number、Object;ES6新增長一種數據類型Symbol.code

1.symbol定義

  • 原始數據類型:不是對象,不能使用new命令建立,不能添加屬性;
  • 表示獨一無二的值:
Symbol()===Symbol();//false
Symbol('foo')===Symbol('foo');//false
Symbol.for('bar')===Symbol('bar');//true
  • symbol值做爲屬性名時,該屬性是公開屬性,非私有;
  • symbol做爲屬性時,不可被遍歷;

2. 做用

  • 消除魔術字符串:消除代碼內部強耦合;
  • 模塊的單利模式:任什麼時候候都返回同一個實例;
var CAT_KEY=Symbol.for('cat');
function Cat(){};
if(!global[CAT_KEY]){global[CAT_KEY]=new Cat()};

3.內置Symbol值——11個

  • Symbol.hasInstance
  • Symbol.isConcatSpreadable
    -Symbol.species
  • Symbol.match
  • Symbol.replace
  • Symbol.search
  • Symbol.split
  • Symbol.iterator
  • Symbol.toPrimitive
  • Symbol.toStringTag
  • Symbol.unscopable
相關文章
相關標籤/搜索