1敏簿。 數(shù)據(jù)類型Symbol是用于保證對(duì)象的屬性名的獨(dú)一無(wú)二性的。至此數(shù)據(jù)類型擴(kuò)充為7種: undefined,null惯裕,Boolean温数,Number,Object蜻势,String撑刺,Symbol。
2握玛。 Symbol函數(shù)可以接受一個(gè)參數(shù)够傍,作為Symbol實(shí)例的描述,如果這個(gè)參數(shù)是對(duì)象挠铲,會(huì)調(diào)用對(duì)象的toString方法冕屯,將對(duì)象字符串化。
- Symbol 值不可以和其他類型的值運(yùn)算拂苹,但可以轉(zhuǎn)成字符串和布爾值, 不可以轉(zhuǎn)為數(shù)值:
let sym = Symbol();
String(sym);
sym.toString();
Boolean(sym);
!sym;
- 作為屬性名的Symbol有三種寫法:
let sym = Symbol();
let obj = {};
obj[sym] = "hello"; 或者
let obj = {
[sym]: function(){}
}; 或者
Object.defineProperty(obj, sym, {value: "hello"});
引用Symbol屬性值時(shí)只能使用方括號(hào)安聘,不能使用點(diǎn)號(hào)
- Object.getOwnPropertySymbols(obj)可以提取Symbol屬性,形成一個(gè)數(shù)組瓢棒。
Reflect.ownKeys(obj)可以提出去包括Symbol值的屬性浴韭,形成一個(gè)數(shù)組。
6脯宿。