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

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

es6 map有序嗎

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

es6 map有序嗎

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

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

一、map集合

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

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

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

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

1、屬性:size

返回map的元素數

2、基本方法

(1)set()

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

(2)get()

獲取某個key的值,返回key對應的值,沒有則返回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
登錄后復制

(4)delete()

刪除某個key及其對應的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
登錄后復制

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' ] }*/
登錄后復制

(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 */
登錄后復制

4、轉為數組

map結構轉為數組解構

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' ] ] */
登錄后復制

二、weakmap集合

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

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>
登錄后復制

代碼中的myElement是一個DOM節點,每當發生click事件,就更新一下狀態。我們將這個狀態作為鍵值放在WeakMap里,對應的鍵名就是myElement,一旦這個DOM節點刪除,該狀態就會自動消失,不存在內存泄漏的風險

es6 map有序嗎

(2)注冊監聽事件的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>
登錄后復制

所體現的效果是一樣的

(3)部署私有屬性

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

我們不想讓用戶直接訪問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; })();//定義好了函數就開始執行   let p = new Person('jack'); console.log(p._name)//因為name的私有型,所以在外不可訪問 console.log(p.getName())   /*輸出: undefined jack */
登錄后復制

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
欧美一级欧美一级| 99精品人妻少妇一区二区| 激情小视频网站| 精品www久久久久奶水| 色婷婷综合网站| 久久久久久久午夜| 国产九九九视频| 欧美三级在线观看视频| 三级黄色片免费看| 男人操女人免费软件| 亚洲精品偷拍视频| www黄色av| 免费在线观看视频a| 免费看黄色一级大片| 免费超爽大片黄| 四虎4hu永久免费入口| 亚洲免费黄色录像| 亚洲精品高清无码视频| 成年人观看网站| 欧美 日韩 国产一区| 欧美日韩不卡在线视频| 老司机av福利| 日本网站在线看| 91精品国产三级| 一区二区三区四区毛片| 北条麻妃在线一区| 久久久久久久久久久视频| 玩弄中年熟妇正在播放| 日本福利视频一区| 国产成人一区二区三区别| aaa免费在线观看| 日韩成人午夜影院| 日韩视频在线观看视频| 91插插插影院| 东京热加勒比无码少妇| 黄色三级中文字幕| 天天综合五月天| 超碰97免费观看| 51xx午夜影福利| 国产又黄又猛的视频| wwww.国产| 色多多视频在线播放| 黄色片视频在线免费观看| 国产在线精品91| 日本a视频在线观看| 久久99中文字幕| 成人在线视频一区二区三区| 波多野结衣国产精品| 日韩av在线中文| 亚洲欧洲日本精品| 四虎1515hh.com| 91精品国产吴梦梦| 菠萝蜜视频在线观看入口| 黄色片免费网址| 免费成人深夜夜行网站视频| 青青草免费在线视频观看| 一本—道久久a久久精品蜜桃| 日本网站在线看| 国产又粗又猛又爽又黄的网站| 四虎永久免费网站| 日韩精品在线观看av| 成熟老妇女视频| 亚洲最大综合网| 2018日日夜夜| 成人午夜激情av| 岛国av在线免费| 一本二本三本亚洲码| 欧美一区二区视频在线播放| www.99热这里只有精品| 一本久道中文无码字幕av| 天天插天天操天天射| 日韩av自拍偷拍| 欧美丰满熟妇bbbbbb百度| www.99av.com| 亚洲一二三不卡| 欧美又粗又长又爽做受| 国产一级做a爰片久久| 国产精品av免费观看| 杨幂毛片午夜性生毛片| www.在线观看av| 一起操在线视频| 日韩av在线播放不卡| 99re在线视频免费观看| av动漫免费观看| 爱情岛论坛vip永久入口| 8x8x华人在线| 国产aⅴ爽av久久久久| 国产h视频在线播放| 人妻无码久久一区二区三区免费| 日韩有码免费视频| 黄色一级视频播放| 亚洲欧美自拍另类日韩| 性欧美大战久久久久久久| 国产九九在线视频| www.中文字幕在线| 日本xxx免费| 99re精彩视频| 日本久久久精品视频| 中文字幕免费高| 欧美精品色婷婷五月综合| 国产91porn| 欧美日韩怡红院| 成人短视频在线看| 91激情视频在线| 久久久久久久久久久久久国产精品| 国内外成人激情免费视频| 国产探花在线看| a级免费在线观看| 天天夜碰日日摸日日澡性色av| 精品久久久无码人妻字幂| 天天操精品视频| 超碰人人草人人| 日韩av自拍偷拍| 在线观看免费av网址| 97视频在线免费播放| 欧美性猛交内射兽交老熟妇| 日韩欧美中文视频| 亚洲怡红院在线| 26uuu成人| 男人天堂a在线| 中文字幕在线视频一区二区| 波多野结衣家庭教师在线| 黄色三级中文字幕| www日韩在线观看| 日韩精品视频一二三| 在线一区二区不卡| 成人毛片100部免费看| 极品美女扒开粉嫩小泬| 精品国产一区二区三区无码| aa免费在线观看| 玖玖精品在线视频| 免费特级黄色片| 激情综合网俺也去| 天天操夜夜操很很操| 日韩一级片免费视频| caoporn超碰97| 日韩一级特黄毛片| 苍井空浴缸大战猛男120分钟| 手机av在线网站| 免费一级特黄毛片| 日本在线播放一区二区| 国产自产在线视频| 三年中文在线观看免费大全中国| 青青草综合视频| 欧美日韩亚洲自拍| 欧美 日韩 亚洲 一区| 91欧美一区二区三区| 久久久久久久中文| 国产日韩第一页| 潘金莲激情呻吟欲求不满视频| 91猫先生在线| 日韩一级性生活片| 在线观看18视频网站| 五月激情五月婷婷| 人人爽人人av| 黑鬼大战白妞高潮喷白浆| 日本人体一区二区| 日韩欧美视频免费在线观看| 天天操天天干天天做| 手机看片福利日韩| 成人小视频在线看| 国产午夜福利视频在线观看| 国产欧美久久久久| 手机看片日韩国产| 色乱码一区二区三区熟女| 天堂av2020| 中文字幕一区二区在线观看视频| 小泽玛利亚视频在线观看| av五月天在线| 欧美极品欧美精品欧美图片| 久久精品免费一区二区| 日本a级片免费观看| 欧美视频在线观看网站 | 亚洲色图久久久| 国产又粗又长又大的视频| 91免费视频网站在线观看| 日韩在线视频在线观看| 国产日韩av网站| av网站大全免费| 日韩精品手机在线观看| 久久人人爽av| 亚洲欧洲日本精品| 一道本在线免费视频| 嫩草视频免费在线观看| 亚洲色图欧美自拍| 欧美精品色视频| 真人做人试看60分钟免费| 久久婷五月综合| 五月天中文字幕在线| japanese在线视频| 韩日视频在线观看| 日韩毛片在线免费看| 少妇激情一区二区三区| 国产三级三级看三级| 久久香蕉视频网站| 久热免费在线观看| 青青草原国产免费| 男人添女人下面高潮视频| 午夜在线观看av| 青青青在线观看视频|