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一区二区
黑人巨茎大战欧美白妇| 簧片在线免费看| 亚洲自偷自拍熟女另类| 国产aaa一级片| 五月激情五月婷婷| 阿v天堂2018| 不卡av免费在线| 日本一级黄视频| 中文字幕成人在线视频| 少妇人妻大乳在线视频| www.午夜av| 亚洲国产日韩欧美在线观看| 男人日女人视频网站| 亚洲午夜精品一区| 亚洲黄色a v| 男人和女人啪啪网站| 污网站免费在线| 春日野结衣av| 国产成人无码一二三区视频| 国产情侣第一页| 国产成人免费高清视频| 中文字幕av专区| 国产又粗又长又大的视频| 国产原创精品在线| xxww在线观看| 午夜福利123| 熟女熟妇伦久久影院毛片一区二区| wwwwww.色| 高清一区在线观看| www.久久av.com| 激情黄色小视频| 波多野结衣在线免费观看| 污视频网站观看| 国产树林野战在线播放| 久久国产成人精品国产成人亚洲| 欧美一级免费在线| 免费观看中文字幕| 欧美极品少妇无套实战| 大荫蒂性生交片| 欧美a在线视频| 久久九九国产视频| 中文字幕一区久久| 三级黄色片免费观看| 色哟哟免费网站| av免费观看大全| 国产91对白刺激露脸在线观看| 美女黄色片网站| 欧美综合在线播放| 亚洲五月天综合| www.天天射.com| 欧美日韩dvd| 精品91一区二区三区| 国产在线播放观看| 性猛交ⅹ×××乱大交| 懂色av粉嫩av蜜臀av| 国产xxxxx在线观看| 日本在线播放一区二区| 国产日韩第一页| 91传媒免费视频| 久久久久国产精品熟女影院| 在线免费黄色网| 国产视频九色蝌蚪| 九色porny自拍| 99热自拍偷拍| 国内自拍第二页| 国产成人精品视频ⅴa片软件竹菊| 亚洲欧美日韩一二三区| 免费欧美一级视频| 亚洲网中文字幕| 久久男人资源站| 欧美日韩一区二区三区69堂| www.欧美黄色| 91精品999| 亚洲色成人一区二区三区小说| 欧美一级免费在线观看| 搡女人真爽免费午夜网站| 日韩欧美猛交xxxxx无码| 日韩福利视频在线| 日本成人在线不卡| 中文字幕中文在线| 能在线观看的av| 成人毛片视频网站| 国产91沈先生在线播放| 一级 黄 色 片一| 亚洲午夜精品一区| 最新天堂中文在线| 国产福利在线免费| www.成年人视频| 中文国产在线观看| 中国一级黄色录像| 在线免费观看av网| 99精品视频网站| 亚洲色图欧美自拍| 欧美国产在线一区| 在线播放 亚洲| 黄色录像特级片| 992tv成人免费观看| 中文字幕免费高| 玖玖精品在线视频| a级黄色片免费| 国产免费xxx| 日本www在线播放| 亚洲人成无码www久久久| 午夜免费高清视频| 日韩不卡一二三| 日本不卡一区二区在线观看| 日韩av一卡二卡三卡| 亚洲av毛片在线观看| 在线成人免费av| 国产精品久久久久久久乖乖| 人妻少妇精品无码专区二区| 日本十八禁视频无遮挡| 成年人在线观看视频免费| 不用播放器的免费av| 超薄肉色丝袜足j调教99| 成人性生活视频免费看| 99久热在线精品视频| 色姑娘综合天天| 乱人伦xxxx国语对白| 亚洲免费看av| 欧美这里只有精品| 国产福利视频在线播放| 夜夜爽久久精品91| 国产aaaaa毛片| 成人在线观看你懂的| 各处沟厕大尺度偷拍女厕嘘嘘| 国产精品后入内射日本在线观看| 污网站免费在线| 国产成人在线小视频| 一道本在线免费视频| 国产免费黄色一级片| 17c国产在线| 成人综合视频在线| 亚洲啊啊啊啊啊| 无限资源日本好片| 黄色大片中文字幕| 国产裸体舞一区二区三区| www亚洲国产| 午夜宅男在线视频| 国产高清av在线播放| 国产精品嫩草影视| 黄色一级片播放| 日韩一级片一区二区| 亚洲国产精品久久久久婷蜜芽| 日本精品久久久久中文字幕| 9191国产视频| 日韩av自拍偷拍| 日本中文字幕影院| 中文字幕 91| 久久精品网站视频| 男人插女人视频在线观看| 国产精品久久久久久久99| wwwxxx黄色片| 日日干夜夜操s8| 999久久久精品视频| 黄色录像特级片| 草草久久久无码国产专区| 成人性视频欧美一区二区三区| 久久精品视频91| 欧美精品色视频| 18禁裸男晨勃露j毛免费观看| 91丨porny丨探花| 99re精彩视频| 日b视频免费观看| 久久久久久久久久久久久国产精品| 青青青国产在线视频| 性生活免费在线观看| 五月天激情图片| 国产欧美高清在线| 青娱乐国产精品视频| 奇米精品一区二区三区| 国产色视频在线播放| 亚洲熟妇无码av在线播放| 91av俱乐部| av一区二区三区免费观看| 无码aⅴ精品一区二区三区浪潮 | 超碰在线免费观看97| 欧美午夜小视频| 伊人五月天婷婷| 日本精品免费在线观看| 久久精品国产精品亚洲精品色 | 九色91popny| 大西瓜av在线| 超碰免费在线公开| 最新中文字幕2018| www国产精品内射老熟女| 国产精品jizz在线观看老狼| 亚洲人成色77777| a级黄色小视频| 亚洲精品天堂成人片av在线播放| 国产野外作爱视频播放| 91专区在线观看| 免费看欧美一级片| 日本a级片在线播放| 婷婷激情综合五月天| 色婷婷.com| 8x8x成人免费视频| 超碰成人在线播放| 午夜免费看视频| 亚洲欧美国产中文|