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

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

es6 map有序嗎

map是有序的。ES6中的map類型是一種儲存著許多鍵值對的有序列表,其中的鍵名和對應(yīng)的值支持所有數(shù)據(jù)類型;鍵名的等價性判斷是通過調(diào)用“Objext.is()”方法來實現(xiàn)的,所以數(shù)字5與字符串“5”會被判定為兩種類型,可以分別作為兩種獨立的鍵出現(xiàn)在程序中。

es6 map有序嗎

前端(vue)入門到精通課程:進入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點擊使用

本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

一、map集合

JavaScript的對象(object),本質(zhì)是上鍵值對的集合,但是傳統(tǒng)上只能用字符串當做鍵值對。

為了解決這個問題,ES6提供了map數(shù)據(jù)結(jié)構(gòu)。它類似對象,也是鍵值對的集合。但是這個鍵的范圍不限于字符串,各種類型的值(包括對象)都可以當做鍵。也就是說object結(jié)構(gòu)提供了(字符串-值)的對應(yīng),map結(jié)構(gòu)實現(xiàn)

ES6中的map類型是一種儲存著許多鍵值對的有序列表,其中的鍵名和對應(yīng)的值支持所有數(shù)據(jù)類型。鍵名的等價性判斷是通過調(diào)用Objext.is()方法來實現(xiàn)的,所以數(shù)字5與字符串‘5’會被判定為兩種類型,可以分別作為兩種獨立的鍵出現(xiàn)在程序中。

注意:有一個例外,map集合中將+0和-0視為相等,與Object.is()結(jié)果不同,如果需要“鍵值對”的數(shù)據(jù)結(jié)構(gòu),map比object更合適,具有極快的查找速度

1、屬性:size

返回map的元素數(shù)

2、基本方法

(1)set()

給map添加數(shù)據(jù),返回添加后的map(給已存在的鍵賦值后會覆蓋掉之前的值)

(2)get()

獲取某個key的值,返回key對應(yīng)的值,沒有則返回undefined

(3)has()

檢測是否存在某個key,返回布爾值

let map = new Map();   map.set('JacksonWang','123'); map.set('LEO','456'); map.set('Z-','789');   console.log(map.size); console.log(map.get('JacksonWang')); console.log(map.get('LEO')); console.log(map.has('Z-'));   //輸出:    3 //        123 //        456 //        true
登錄后復(fù)制

(4)delete()

刪除某個key及其對應(yīng)的value,返回布爾值,成功刪除則為true

(5)clear()

清除所有的值,返回undefined

let map = new Map();   map.set('JacksonWang','123'); map.set('LEO','456'); map.set('Z-','789');   map.delete('Z-'); console.log(map.size);   console.log(map.clear())   //輸出:  2 //      undefined
登錄后復(fù)制

3、遍歷方式

注意:map的遍歷順序就是插入順序

(1)keys()

獲取map的所有key

(2)values()

獲取map的所有值

(3)entries()

獲取map的所有成員

let map = new Map();   map.set('JacksonWang','123'); map.set('LEO','456'); map.set('Z-','789');   console.log(map.keys())//打印所有的鍵 console.log(map.values())//打印所有的值 console.log(map.entries())//以鍵值對的方式   /*輸出: [Map Iterator] { 'JacksonWang', 'LEO', 'Z-' } [Map Iterator] { '123', '456', '789' } [Map Entries] {   [ 'JacksonWang', '123' ],   [ 'LEO', '456' ],   [ 'Z-', '789' ] }*/
登錄后復(fù)制

(4)forEach()

遍歷map的所有成員

let map = new Map();   map.set('JacksonWang','123'); map.set('LEO','456'); map.set('Z-','789');   for(const [key,value] of map.entries()){     console.log(`${key}:${value}`); } /*輸出: JacksonWang:123 LEO:456 Z-:789 */
登錄后復(fù)制

4、轉(zhuǎn)為數(shù)組

map結(jié)構(gòu)轉(zhuǎn)為數(shù)組解構(gòu)

let map1 = new Map([     [1,'One'],     [2,'Two'],     [3,'Three'] ])   console.log([...map1.keys()]); console.log(...map1.entries()) console.log([...map1.entries()]);   /*輸出: [ 1, 2, 3 ] [ 1, 'One' ] [ 2, 'Two' ] [ 3, 'Three' ] [ [ 1, 'One' ], [ 2, 'Two' ], [ 3, 'Three' ] ] */
登錄后復(fù)制

二、weakmap集合

WeakMap是弱引用Map集合,也用于存儲對象的弱引用。WeakMap集合中的鍵名必須是一個對象,如果使用非對象鍵名會報錯:集合中保存的是這些對象的弱引用,如果在弱引用之外的不存在其他的強引用,引擎的垃圾回收機制會自動回收這個對象,同時會移出WeakMap集合中的鍵值對。但是只有集合的鍵名遵循這個規(guī)則,鍵名對應(yīng)的值如果是一個對象,則保存的對象的強引用,不會觸發(fā)垃圾回收裝置

1、WeakMap集合的用途

(1)存儲DOM元素

<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title> </head> <body>     <button id="btn">WeskMap測試</button>     <script>         let btn = document.querySelector('#btn');         let wmap = new WeakMap();         wmap.set(btn,{timesClicked:0})//在map中放一個鍵值對,btn為鍵           btn.addEventListener('click',function(){             let temp = wmap.get(btn);//從這里獲取鍵名為btn的值             temp.timesClicked++;             console.log(temp.timesClicked)         },false)     </script> </body> </html>
登錄后復(fù)制

代碼中的myElement是一個DOM節(jié)點,每當發(fā)生click事件,就更新一下狀態(tài)。我們將這個狀態(tài)作為鍵值放在WeakMap里,對應(yīng)的鍵名就是myElement,一旦這個DOM節(jié)點刪除,該狀態(tài)就會自動消失,不存在內(nèi)存泄漏的風(fēng)險

es6 map有序嗎

(2)注冊監(jiān)聽事件的listener對象

<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title> </head> <body>     <button id="btn">WeskMap測試</button>     <script>         let btn = document.querySelector('#btn');         let wmap = new WeakMap();         wmap.set(btn,{timesClicked:0})//在map中放一個鍵值對,btn為鍵           // btn.addEventListener('click',function(){         //     let temp = wmap.get(btn);//從這里獲取鍵名為btn的值         //     temp.timesClicked++;         //     console.log(temp.timesClicked)         // },false)         function f1(){             let temp = wmap.get(btn);//從這里獲取鍵名為btn的值             temp.timesClicked++;             console.log(temp.timesClicked)         }         btn.addEventListener('click',f1,false)     </script> </body> </html>
登錄后復(fù)制

所體現(xiàn)的效果是一樣的

(3)部署私有屬性

function Person(name){     this._name = name; }   Person.prototype.getName = function(){     return this._name; } //但這是,創(chuàng)建一個Person對象的時候,我們可以直接訪問name let p = new Person('張三'); console.log(p._name)   //輸出:張三
登錄后復(fù)制

我們不想讓用戶直接訪問name屬性,直接使用下面的方法將name包裝成私有屬性

let Person = (function(){     let privateData = new WeakMap();     function Person(yourname){         privateData.set(this,{_name:yourname})//this當前這個鍵的對象     }     Person.prototype.getName = function(){         return privateData.get(this)._name;//     }     return Person; })();//定義好了函數(shù)就開始執(zhí)行   let p = new Person('jack'); console.log(p._name)//因為name的私有型,所以在外不可訪問 console.log(p.getName())   /*輸出: undefined jack */
登錄后復(fù)制

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
日本www在线视频| 天天操,天天操| 在线免费观看av的网站| 欧美日韩福利在线| 国产精品av免费观看| dy888午夜| 精品久久免费观看| 日韩不卡的av| 五月天国产视频| 丰满女人性猛交| 久久久国产精华液999999 | 最近中文字幕一区二区| 日本wwww视频| 成熟老妇女视频| 黑人粗进入欧美aaaaa| 免费av网址在线| 手机av在线网| 亚洲国产精品影视| 亚洲人成无码网站久久99热国产| 永久免费在线看片视频| avove在线观看| 999在线观看视频| 免费看a级黄色片| 艹b视频在线观看| 狠狠干视频网站| 国产精品亚洲αv天堂无码| 浓精h攵女乱爱av| 成人性做爰片免费视频| 欧美网站免费观看| 无限资源日本好片| www.xxx麻豆| 日本爱爱免费视频| 少妇高潮流白浆| 成人观看免费完整观看| 三级av免费看| 成人免费aaa| 欧美精品 - 色网| 国产二区视频在线| 亚洲天堂国产视频| 国产精品国产亚洲精品看不卡| 999精品网站| 日本一级黄视频| 色www免费视频| 成人综合视频在线| 青青青在线观看视频| 欧美日韩在线观看不卡| 午夜免费福利小电影| 亚洲综合123| 韩国中文字幕av| 免费国产a级片| 天天操精品视频| 五月天亚洲视频| 欧美日韩一道本| 9色视频在线观看| 黄频视频在线观看| 久久撸在线视频| 色婷婷综合久久久久中文字幕| 亚洲欧美手机在线| 性生活免费在线观看| 国产91对白刺激露脸在线观看| 欧美亚洲色图视频| 在线无限看免费粉色视频| 爱情岛论坛亚洲首页入口章节| 成人精品视频在线播放| 97av中文字幕| aaaaaaaa毛片| 污视频在线观看免费网站| 日日干夜夜操s8| 五月天视频在线观看| 天天看片天天操| 亚洲最新免费视频| 天天操天天干天天玩| 男女爱爱视频网站| 丁香六月激情婷婷| av免费播放网址| 免费无码国产v片在线观看| www.中文字幕在线| 夫妻免费无码v看片| youjizzxxxx18| 蜜桃福利午夜精品一区| 99久久99精品| 蜜臀精品一区二区| av黄色在线网站| 日本中文字幕影院| 日本精品免费视频| 欧美极品欧美精品欧美| 成人免费观看毛片| 99九九99九九九99九他书对| 中国一级黄色录像| 无码人妻精品一区二区三区在线| 丁香啪啪综合成人亚洲| 中文字幕永久有效| 黄色网在线视频| 男女午夜激情视频| 尤物网站在线看| 妞干网在线观看视频| 特级丰满少妇一级| 免费在线看黄色片| 亚欧美在线观看| 欧日韩免费视频| 色免费在线视频| 男人c女人视频| 亚洲精品一二三四五区| 精品国产三级a∨在线| 国产最新免费视频| 亚洲国产欧美91| 国产最新免费视频| dy888午夜| 午夜宅男在线视频| 免费看又黄又无码的网站| 国产乱码一区二区三区四区| 国产人妻777人伦精品hd| 香港日本韩国三级网站| 青青青在线观看视频| 国产福利在线免费| 国产美女无遮挡网站| 天堂а√在线中文在线| 波多野结衣国产精品| 欧美极品欧美精品欧美图片| 国产 国语对白 露脸| 亚欧激情乱码久久久久久久久| 性欧美大战久久久久久久| 香蕉视频色在线观看| 欧美性猛交xxx乱久交| 99精品在线免费视频| 国产内射老熟女aaaa| 午夜免费福利网站| 亚洲18在线看污www麻豆| 少妇黄色一级片| 欧美日韩在线免费播放| 99精品视频在线看| 日本xxxxxxxxxx75| 国产妇女馒头高清泬20p多| 天堂а√在线中文在线| 六月婷婷激情网| 亚洲AV无码成人精品一区| 久久久国产精华液999999| 五月花丁香婷婷| 捷克做爰xxxⅹ性视频| 日本高清久久久| 超碰91在线播放| 久久视频免费在线| 毛片av在线播放| 日韩免费在线观看av| 精品丰满人妻无套内射| 欧美一级视频免费看| 久久网站免费视频| 日韩 欧美 高清| 午夜剧场高清版免费观看| 91网址在线观看精品| 97超碰在线视| 无罩大乳的熟妇正在播放| 精品国产成人av在线免| 亚洲乱码国产一区三区| 一级黄色在线播放| 久久男人资源站| 亚洲 高清 成人 动漫| 亚洲欧洲日本精品| 97精品国产97久久久久久粉红| 日本一道在线观看| 欧美日韩一区二区在线免费观看 | 黄色高清视频网站| 成年人看的毛片| 欧美日韩一区二区在线免费观看| 国产高清视频网站| 日韩一级特黄毛片| 日本新janpanese乱熟| 亚洲女人在线观看| 欧美成人免费高清视频| 肉色超薄丝袜脚交| 久草青青在线观看| 青青草免费在线视频观看| 欧美成人xxxxx| 国产欧美综合一区| 午夜免费一区二区| 全黄性性激高免费视频| 成人性生交免费看| 一本大道熟女人妻中文字幕在线 | 人妻有码中文字幕| 97超碰人人爱| 欧美精品性生活| 2018国产在线| 一级黄色片在线免费观看| 日韩欧美xxxx| 日本在线xxx| 国产一区 在线播放| 69久久久久久| 高清在线观看免费| 男人添女荫道口女人有什么感觉| 国产精品久久久毛片| 国产美女三级视频| 可以在线看的av网站| 亚洲精品少妇一区二区| 一二三av在线| 香蕉视频999| 超碰人人草人人| 一级黄色片国产| 老司机午夜性大片| 爱豆国产剧免费观看大全剧苏畅| 男女视频一区二区三区|