gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

新增的es6數據結構有哪些

新增結構有:1、Symbol,表示獨一無二的值,是一個函數結構;2、Set,指的是“集合”結構,類似數組,允許存放無序且不能重復的數據;3、WeakSet,類似Set,內部數據也不能有重復值;4、Map,指的是“字典”結構,可存儲映射關系。

新增的es6數據結構有哪些

本教程操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

ES6新增數據結構

1、Symbol

SymbolES6中新增的一個基本數據類型之一,它是一個函數。每一個從Symbol函數返回的Symbol值都是獨一無二的,symbol值作為對象屬性的標識符,也是唯一的用途的。

const s1 = Symbol() const s2 = Symbol() console.log(s1 === s2); // false

symbol作為key

第一種方式,直接在對象的字面量中添加。

// symbol作為key const obj = {   [s1]:'abc',   [s2]:'cc', }

第二種方式,通過添加數組方式添加。

// 需要用數組方式來獲取,不能通過點語法,否則會獲取到字符串key console.log(obj[s1]);

第三種方式,通過對象中的defineProperty方法添加。

const s4=Symbol() Object.defineProperty(obj,s4,{   configurable:true,   enumerable:true,   writable:true,   value:'ff' })

通過symbol獲取對應的值

需要用數組方式來獲取,不能通過點語法,否則會獲取到字符串key。

console.log(obj[s1]);

symbol不能被隱式轉換成string類型。

注意:Symbol函數中的參數是symbol描述符,這是在ES10新增的特性

let Sym = Symbol("Sym") alert(Sym)  // TypeError: Cannot convert a Symbol value to a string

我們不能直接alert一個symbol對象,但是我們可以通過toString的方式或者.description來獲取symbol對象的描述符。

let sym = Symbol('a') console.log(sym.description); // 'a'

遍歷symbol

在使用for遍歷、object.keys中是獲取不到symbol健的,對此object還提供了getOwnPropertySymbols方法,用于獲取對象中所有symbol的key。

const sKeys=(Object.getOwnPropertySymbols(obj)); for(const skey of sKeys){   console.log(obj[skey]); }

全局symbol對象注冊

有時,我們可能需要多個symbol的值是一致的,我們可以通過symbol提供的靜態方法for方法傳入一樣的描述符來使它們的值一致。

Symbol.for

該方法會在使用給定鍵搜索運行時符號注冊表中的現有符號,并在找到時返回它。否則,使用此鍵在全局符號注冊表中創建一個新符號。

const sa=Symbol.for('cc') const sb=Symbol.for('cc') console.log(sa===sb); //true

Symbol.keyFor

該方法用于獲取全局symbol的描述符。

const key =Symbol.keyFor(sb) console.log(key); // c

2、Set

Set對象(類似數組)允許你存放任何數據類型,但里面的值不能重復。

const s1 = new Set() s1.add(10) s1.add(20) s1.add(30) s1.add(40)  console.log(s1) // Set(4) { 10, 20, 30, 40 }  s1.add(20) console.log(s1) // Set(4) { 10, 20, 30, 40 }

Set常用方法

方法 返回值 說明
size set對象中的數量 返回set對象中的數量
add Set對象 添加元素
delete boolean 刪除元素
has boolean Set對象中是否存在這個值
clear 清空Set對象中的值

3、WeakSet

WeakSet是類似Set的另外一種數據結構,內部數據也不能有重復值。

  • 它與Set的區別
    • WeakSet只能存放對象類型,不能存放基本數據類型
    • WeakSet對元素是弱引用

基本使用

const weakSet = new WeakSet(); let obj = {   name: "_island" };  weakSet.add(obj);

WeakSet常用方法

方法 返回值 說明
add weakset對象 添加元素
delete boolean 刪除元素
has boolean weakset對象中是否存在這個值

關于遍歷

WeakSet不能被遍歷,因為它只是對對象進行弱引用,如果遍歷去獲取元素,有可能導致對象不能被GC回收。

所以WeakSet中的對象是不能獲取的

4、Map

ES6新增的數據結構,用于存儲映射關系。我們知道在JavaScript中對象中是不能用對象來作為key的。(假如我們把對象作為key,其內部會將對象轉換為字符串[object object]

const obj1 = { name: "_island" }; const obj2 = { name: "QC2125" }; const obj3={   [obj1]:'a',   [obj2]:'b', }  console.log(obj3); // { '[object Object]': 'b' }

Map則可以把對象作為key進行存儲,可以通過set方法添加到Map中,也直接通過字面量的方式添加。

const obj1 = { name: "_island" }; const obj2 = { name: "QC2125" }; const map = new Map(); map.set(obj1, "a"); map.set(obj2, "b"); console.log(map); // Map(2) { { name: '_island' } => 'a', { name: 'QC2125' } => 'b' }  // or const map2 = new Map([[obj1,'a'],[obj2,'b']])

Map常用方法

方法 返回值 說明
get 獲取對應的元素 通過key獲取對應元素
size Map對象中的數量 返回Map對象中的數量
set Map對象 添加元素
delete boolean 刪除元素
has boolean Set對象中是否存在這個值
clear 清空Set對象中的值

遍歷Map

通過foreach語句遍歷Map

map2.forEach((item) => console.log(item));

通過for..of遍歷Map

for ([val, key] of map2) {   console.log(`${key}---${val}`); }

5、WeakMap

Map類似,也是以鍵值對的形式存在的

  • 和Map的區別
    • WeakMapkey只能使用對象,不接受其他的類型作為key
    • WeakMapkey對對象是弱引用

基本使用

const weakMap = new WeakMap(); weakMap.set(obj, "a"); console.log(weakMap.get(obj)); // a

WeakMap常用方法

方法 返回值 說明
get weakmap對象 獲取元素
delete boolean 刪除元素
has boolean weaksmap對象中是否存在這個值

關于遍歷

WeakSet一樣,正因為它是弱引用,WeakMapkey是不可枚舉的,如果key可枚舉那其列表將會受GC影響。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
jizzzz日本| 日韩毛片在线免费看| 无码人妻少妇伦在线电影| 日本成人中文字幕在线| 熟妇人妻va精品中文字幕| 久草免费福利在线| youjizz.com在线观看| 2021狠狠干| 日本国产在线播放| 国产精品乱码久久久久| 日韩av一二三四区| 特级丰满少妇一级| 亚洲精品第三页| 强开小嫩苞一区二区三区网站| 成人小视频在线观看免费| 日韩中文字幕三区| 国产嫩草在线观看| 黄色a级三级三级三级| 黑人巨茎大战欧美白妇| 国产一级不卡毛片| 欧美午夜aaaaaa免费视频| 青青青在线观看视频| 国产3p露脸普通话对白| 天堂av2020| 国产一二三四五| 久青草视频在线播放| 亚洲熟女乱色一区二区三区| 国产成年人在线观看| 日本成人中文字幕在线| 婷婷激情综合五月天| av免费中文字幕| 性生生活大片免费看视频| 蜜臀在线免费观看| 成年人视频网站免费观看| 亚洲高清免费在线观看| www.日本三级| 成年网站免费在线观看| 国产 欧美 日韩 一区| 欧美在线aaa| 午夜免费福利小电影| 免费一级特黄录像| 欧美无砖专区免费| xxww在线观看| 那种视频在线观看| 草草草视频在线观看| 久久人人爽av| 国产在线青青草| 国产a级黄色大片| 欧美女同在线观看| 中文久久久久久| 久在线观看视频| 欧美日韩午夜爽爽| 无套内谢丰满少妇中文字幕| av观看免费在线| 和岳每晚弄的高潮嗷嗷叫视频| 中文字幕在线观看日 | 国产亚洲欧美在线视频| 男女爱爱视频网站| 图片区乱熟图片区亚洲| 日本老熟妇毛茸茸| 国产第一页视频| 成年人看的毛片| 日本一本中文字幕| 欧洲美女和动交zoz0z| 在线观看岛国av| 亚洲污视频在线观看| 黄色成人免费看| 中文字幕一区二区三区四| 午夜视频在线瓜伦| av网站在线不卡| 一道本视频在线观看| 国产精品wwwww| 国产一区二区视频免费在线观看| 日韩免费一级视频| 国产精品动漫网站| 老头吃奶性行交视频| 黄色三级视频在线| 中文av一区二区三区| 中文字幕av久久| 亚洲精品国产suv一区88| www插插插无码视频网站| 欧美又粗又长又爽做受| 人妻少妇精品久久| 无码人妻精品一区二区三区在线| 久久久久久久激情| 手机av在线网| 男人天堂a在线| 欧美一级片中文字幕| 亚洲综合20p| 日韩 欧美 视频| 男操女免费网站| 欧美做受777cos| 国产视频九色蝌蚪| 色噜噜狠狠一区二区| www.-级毛片线天内射视视| 欧美一级爱爱视频| 亚洲黄色av网址| 800av在线免费观看| www.四虎成人| 久久99久久99精品| 精品亚洲一区二区三区四区| 国产亚洲精品久久久久久久| 日韩在线第三页| 国产精品videossex国产高清| 玩弄中年熟妇正在播放| 国产精品自在自线| 国产a级一级片| 日韩精品一区二区在线视频| 国产情侣av自拍| 国产原创中文在线观看| 香蕉视频色在线观看| 国产性生交xxxxx免费| 亚洲中文字幕无码av永久| 亚洲天堂av一区二区三区| 男人日女人bb视频| 欧美日韩视频免费| 亚洲怡红院在线| 黄色手机在线视频| 鲁一鲁一鲁一鲁一色| 人妻激情另类乱人伦人妻| 国产又爽又黄ai换脸| 日韩精品视频一二三| 男人的天堂日韩| 5月婷婷6月丁香| 国产免费裸体视频| 欧美xxxxxbbbbb| 亚洲av毛片在线观看| 久久久久久久久久久久久久久国产 | 国产精品999.| 久久6免费视频| 天天干天天玩天天操| 另类小说第一页| 中文字幕亚洲乱码| 国产精品拍拍拍| www.天天射.com| www.超碰97.com| 日韩在线一区视频| 亚洲免费av网| 玖玖精品在线视频| 欧美黑人在线观看| 成人免费看片'免费看| 国产a级片网站| 黄页网站大全在线观看| avav在线播放| 欧美大片在线播放| 久草综合在线观看| 免费网站在线观看黄| 中文字幕线观看| www.avtt| 国产无套粉嫩白浆内谢的出处| 亚洲天堂2018av| 日本福利视频网站| 99精品在线免费视频| 手机看片福利盒子久久| 亚洲一区二区三区四区五区| www.国产福利| 成人在线观看你懂的| 亚洲人成色77777| 亚洲国产精品影视| 国产一级爱c视频| 91亚洲免费视频| 青青青在线观看视频| av免费在线播放网站| 国产日韩视频在线播放| 日韩国产一级片| 永久免费的av网站| 免费成人午夜视频| 日本中文字幕二区| 日韩精品视频一区二区在线观看| 中文字幕第17页| 99精品人妻少妇一区二区 | 成人黄色大片网站| 人人干人人干人人| 国产免费黄色一级片| 天天视频天天爽| 国产91在线视频观看| 一区二区三区国产好的精华液| 国产精品三级一区二区| 日本美女视频一区| 国产精品视频一区二区三区四区五区| 久久久久久久久久一区| 99爱视频在线| 免费观看国产精品视频| 免费成人深夜夜行网站视频| 日本久久精品一区二区| 亚洲自偷自拍熟女另类| 国产精品va在线观看无码| 五月婷婷之婷婷| 97公开免费视频| 国内性生活视频| 欧美亚洲一二三区| 我的公把我弄高潮了视频| 夜夜爽久久精品91| 久久精品视频在线观看免费| 日韩中文字幕二区| 97在线免费公开视频| 99蜜桃臀久久久欧美精品网站| www.日本三级| 国产高清av在线播放| av在线播放天堂|