ES6-07:Symbol數據類型
阿新 • • 發佈:2017-12-26
tor var pre 私有 類型 耦合 primitive div 一個
ES5中規定JavaScript有6種數據類型:Undefined、Null、String、Boolean、Number、Object;ES6新增加一種數據類型Symbol.
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
:
ES6-07:Symbol數據類型