久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久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號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲黄页一区| 加勒比视频一区| 国产一区二区三区不卡视频网站 | 日韩精品一区第一页| 欧美专区在线| 欧美视频一区| 国产成人精品一区二区三区免费 | 97精品中文字幕| 高清av一区| 亚洲人成高清| 亚洲一区成人| 亚洲欧美一级| 久久一区视频| 亚洲特色特黄| 日韩中文字幕一区二区高清99| 久久亚洲欧洲| 久久精品99久久久| 97国产精品| 亚洲精品黄色| 国产精品伦理久久久久久| 欧美日韩精品一本二本三本| 日韩精品高清不卡| 精品国产一区二区三区av片| 91精品国产成人观看| 免费在线观看成人| 欧美日韩一区自拍| 国产精品99在线观看| 国产精品88久久久久久| 日韩精品导航| a日韩av网址| 首页欧美精品中文字幕| 美女免费视频一区| 夜夜嗨网站十八久久| 国产精品一区二区美女视频免费看 | 三级亚洲高清视频| 国产精品草草| 亚洲二区三区不卡| 国产欧美日韩一级| 91精品xxx在线观看| 亚洲我射av| 日韩电影二区| 视频一区日韩精品| 日韩一区二区免费看| 色婷婷狠狠五月综合天色拍| 亚洲视频电影在线| 国产v综合v| 国产欧美啪啪| 亚洲一卡久久| 欧美不卡高清一区二区三区| 日韩黄色av| 亚洲午夜久久久久久尤物| 日本午夜精品久久久| 日韩一区二区在线免费| 青草av.久久免费一区| 五月天久久网站| 红杏一区二区三区| 欧美一级一区| 亚洲网站视频| 精品91福利视频| 日精品一区二区三区| 激情五月色综合国产精品| 麻豆精品少妇| 日韩av二区在线播放| 国产精品日本欧美一区二区三区| 国产成人免费视频网站视频社区| 青青在线精品| 日韩中文字幕区一区有砖一区 | 天堂日韩电影| 久久亚洲国产精品尤物| 日韩国产欧美视频| 蜜桃伊人久久| 日韩一区二区免费看| 日韩三区免费| 六月丁香综合在线视频| 日本a级不卡| 一区二区不卡| 亚洲综合日韩| 亚洲一级网站| 日韩欧美精品| 热三久草你在线| 国内精品亚洲| 国产精品99久久免费| 欧美日韩va| 日韩极品在线观看| 日本不卡一区二区三区| 一区二区不卡| 亚洲毛片在线| 亚洲免费毛片| 日韩国产欧美一区二区三区| 日韩综合一区二区| 视频一区免费在线观看| 中文精品电影| 日韩高清在线观看一区二区| 涩涩涩久久久成人精品| 在线一区二区三区视频| 男人的天堂久久精品| 美女精品在线观看| 美女久久网站| 伊人久久大香伊蕉在人线观看热v| 蜜臀久久99精品久久久久久9| 在线亚洲一区| 综合精品一区| 日韩三级久久| 久久国产免费看| 国产极品久久久久久久久波多结野| 国产精品一页| 精品视频在线你懂得| 国产v日韩v欧美v| 久久精品国产www456c0m| 亚洲福利精品| 久久av一区| 日韩中文字幕无砖| 国产精品综合| 日韩欧美二区| 国产精品色网| 国产精品国码视频| av高清不卡| 国产一区二区精品| 91精品啪在线观看国产爱臀| 国产精品亚洲二区| 久久99久久久精品欧美| 日韩av专区| 欧美粗暴jizz性欧美20| 亚洲午夜免费| 国产传媒在线观看| 欧美日韩国产亚洲一区| 亚洲性视频在线| 久久99免费视频| 久久精品播放| 亚洲精品在线国产| 麻豆精品视频在线观看| 久久久久美女| 亚洲精品精选| 国产va在线视频| 中文无码日韩欧| 国产乱码午夜在线视频| 男女男精品网站| 中文字幕在线看片| 亚洲天堂免费| 欧美日韩免费看片| 日本综合精品一区| 精品国产不卡一区二区| 亚洲专区一区| 久久中文精品| 久久高清免费观看| 九九九精品视频| 国产毛片一区| 黄色欧美在线| 日本不卡中文字幕| 久久国产小视频| 91久久精品无嫩草影院| 久久久亚洲一区| 欧美久久久网站| 国产精品97| 国产不卡精品| 三级在线观看一区二区| 你懂的亚洲视频| 免费在线欧美视频| 麻豆精品蜜桃| 国产午夜精品一区在线观看| 欧美va天堂在线| 国产精品1区| 亚洲一区二区三区在线免费| 国产精品亚洲一区二区三区在线观看| 涩涩涩久久久成人精品| 亚洲欧美日韩专区| 亚洲www啪成人一区二区| 国产欧美日韩影院| 欧美中文字幕| 欧洲毛片在线视频免费观看| 久久av影视| 亚洲小说春色综合另类电影| 三上悠亚国产精品一区二区三区| 久久国产三级精品| 免费国产亚洲视频| 欧美+日本+国产+在线a∨观看| 精品久久久久中文字幕小说| 日韩中文字幕在线一区| 国产精品日韩久久久| 久久精品播放| 国产白浆在线免费观看| 精品亚洲二区| 国产探花在线精品一区二区| 蜜臀av一区二区在线免费观看| 91精品在线观看国产| 国产成人久久| 国产精品va| 国产亚洲字幕| 中文字幕日韩欧美精品高清在线| 免费不卡中文字幕在线| 午夜久久中文| 国产极品模特精品一二| 日韩欧美三区| 日本不卡不码高清免费观看| 伊人成人在线视频| 免费国产自久久久久三四区久久 | 国产在线观看www| 激情不卡一区二区三区视频在线| 国产精品亚洲二区| 国产精品激情电影|