ES6學習 第十一章 Symbol

2021-09-30 17:20:05 字數 990 閱讀 9537

//第十一章 symbol

//es6引入的一種新的原始資料型別,表示獨一無二的值,為了防止物件的屬性名衝突

//js七大資料型別:undefined,null,boolean,number,string,object,symbol(前五種為基本資料型別)

let s = symbol(); //不能使用new命令

let s2 = symbol('s2'); //可以傳入乙個描述符作為引數,用作轉化為字串時區分不同symbol

console.log(typeof s); //symbol

console.log(s,s2); //symbol() symbol(s2)

console.log(symbol('a') === symbol('a'));

//false(相同描述符的symbol也是不一樣的)

//sumbol作為屬性名時,必須放在方括號之內

let o = ;

console.log(o[s]); //a

console.log(o.s); //undefined (symbol屬性名不能放在.號後面,會被識別成字串)

如果已經登記了以key為描述符的symbol,則返回該symbol,否則新建乙個symbol返回

let s3 = symbol.for('s2');

console.log(s3 === s2); //false

let s4 = symbol.for('s2');

console.log(s3 === s4); //true (只有以symbol.for(key)的方式建立的symbol才會被登記,且是全域性的

// symbol()方式建立的不會被登記,)

返回已經被登記的symbol的key

console.log(symbol.keyfor(s3));//s2

console.log(symbol.keyfor(s2));//undefined

es6 學習筆記(二)Symbol

symbol類似於enum,可以起到識別符號的作用。主要可以應用在一下場景。1.可以作為屬性名 var mysymbol symbol var a a.mysymbol hello a mysymbol undefined a mysymbol hello 要注意symbol值作為物件屬性名時,不能...

modern c design 第十一章

本章介紹了經常遇到的雙分派的一種泛型解決方案。c 在語法上實現了單分派,即虛函式,通過動態機制選擇相應的函式。雙分派是形如fun object1 a,object2 b 根據a和b的實際型別動態自動分派乙個處理函式。最容易想到的方案,蠻幹法 寫一大堆過載函式.不過這種方法會有很強的依賴性。也提供了一...

第十一章3

第十一章 一 滾動元件 awt中的滾動元件包括scrollbar 滾動條 和滾動面板 scrollpane 兩種。1 滾動條scrollbar 在指定的取值範圍內快速選取某一值的功能。i.構造方法 public scrollbar int orientation,int value,int visi...