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热亚洲精品| 超碰97人人射妻| 男人天堂av片| 成年人在线观看视频免费| 在线观看免费污视频| 在线观看18视频网站| 成人一级片网站| 天天做天天爱天天高潮| 国产xxxxx视频| 少妇大叫太大太粗太爽了a片小说| 人妻久久久一区二区三区| 亚洲娇小娇小娇小| 国产97色在线 | 日韩| 97中文字幕在线| 黄色一级大片免费| 自拍偷拍视频在线| 在线免费视频一区| 日本三级黄色网址| 污片在线免费看| 农村妇女精品一二区| 欧美 国产 小说 另类| 水蜜桃色314在线观看| 色偷偷中文字幕| www.色.com| 91免费国产精品| 日日碰狠狠添天天爽超碰97| 日韩欧美视频免费在线观看| 久久精品亚洲天堂| 国产欧美123| 欧美 日韩 国产在线观看| 91猫先生在线| 可以看污的网站| 国产精品av免费观看| 欧美大片在线播放| 午夜精品久久久久久久99热影院| 五月天激情播播| xxxx18hd亚洲hd捆绑| 国产九九热视频| 视频一区二区视频| 十八禁视频网站在线观看| 另类小说色综合| 久久久久久久久久久99| 污网站免费在线| 欧美黑人经典片免费观看| 亚洲欧美偷拍另类| jizzjizzxxxx| 美女扒开大腿让男人桶| 九九九九九九九九| 男女av免费观看| 欧美二区在线视频| 日韩人妻精品一区二区三区| 中文字幕第36页| 俄罗斯av网站| 精品国产免费av| 九一国产精品视频| 97国产在线播放| 久久国产亚洲精品无码| 国产一二三四区在线观看| 五月天国产视频| 国产乱码一区二区三区四区| 免费av手机在线观看| 日韩网站在线免费观看| 日韩黄色短视频| 日本精品久久久久中文字幕| 欧美精品一区二区三区三州| 国产精品久久..4399| 91九色在线观看视频| 男女av免费观看| 伊人国产在线视频| 99精品视频网站| 成品人视频ww入口| 亚洲熟妇av一区二区三区| 99视频在线免费| 在线免费黄色小视频| 99热久久这里只有精品| 无码播放一区二区三区| 中文字幕永久有效| 国产精品av免费观看| 另类小说色综合| 大伊香蕉精品视频在线| 亚洲成人av免费看| 少妇人妻无码专区视频| 国产美女18xxxx免费视频| www.av91| 国产精品12p| 无尽裸体动漫2d在线观看| 五月天激情图片| 日韩精品视频网址| 37pao成人国产永久免费视频| 欧美一级特黄aaa| 自拍偷拍 国产| 可以免费在线看黄的网站| 美女扒开大腿让男人桶| 天堂在线精品视频| 亚洲第一精品区| 亚洲一区二区中文字幕在线观看| 国产91美女视频| 北条麻妃视频在线| 成人黄色一区二区| 亚洲性生活网站| 成人黄色一级大片| 日本特级黄色大片| 久久www视频| 国产精品久久久久7777| 国产一区二区三区乱码| 99热亚洲精品| 爱情岛论坛成人| www.亚洲自拍| 国产九色porny| 欧美视频第一区| 91看片在线免费观看| 五月天综合婷婷| 黄色av网址在线播放| 香蕉视频999| 欧美视频在线观看网站| 日韩精品无码一区二区三区免费| 日韩av片网站| 毛片在线视频播放| www.亚洲自拍| 在线免费视频a| 免费不卡av在线| 污免费在线观看| 久久国产亚洲精品无码| 做爰高潮hd色即是空| 亚洲熟妇av日韩熟妇在线| 欧美 另类 交| 毛片毛片毛片毛| 国产午夜福利视频在线观看| 九九久久久久久| 国产精品自在自线| av污在线观看| 天堂网在线免费观看| 欧美 日韩 国产 高清| 成人黄色片免费| 亚洲高潮无码久久| 国产精品啪啪啪视频| 国产毛片久久久久久| 激情图片中文字幕| 无码人妻精品一区二区三区66| 想看黄色一级片| 青青草原国产在线视频| 在线播放av中文字幕| 亚洲 中文字幕 日韩 无码| 精品无码一区二区三区爱欲| 欧美日韩一级在线| 中国黄色录像片| 国产又粗又爽又黄的视频| 一级网站在线观看| 久久久成人精品一区二区三区| 五月天视频在线观看| 色乱码一区二区三区熟女| 亚洲综合激情五月| 无码熟妇人妻av在线电影| 亚洲理论电影在线观看| 国产男女免费视频| 国产情侣av自拍| 国产精品区在线| 国产精品三级一区二区| 欧美综合在线播放| 一区二区三区韩国| 97超碰人人看| 日日碰狠狠添天天爽超碰97| 免费在线观看毛片网站| 看看黄色一级片| 欧美日韩福利在线| 91人人澡人人爽人人精品| 黄瓜视频免费观看在线观看www| 精品一二三四五区| 香蕉视频网站入口| 久久天天东北熟女毛茸茸| 18禁网站免费无遮挡无码中文| 欧美在线观看视频网站| 一道本在线观看视频| 欧美一区二区三区爽大粗免费| 手机在线成人免费视频| 蜜臀av性久久久久蜜臀av| 成人在线观看a| 日韩不卡一二区| 亚洲一区二区蜜桃| 久久国产午夜精品理论片最新版本| 国产福利一区视频| 国产真实老熟女无套内射| 欧美成人福利在线观看| 国产老熟妇精品观看| 9999在线观看| 另类小说色综合| 日本成年人网址| 粉嫩av一区二区三区天美传媒 | 亚洲中文字幕无码不卡电影| 想看黄色一级片| 亚洲乱码国产一区三区| 国产一二三在线视频| 午夜啪啪免费视频| 天堂一区在线观看| 国产偷人视频免费| 欧美 日韩 国产在线观看| 欧美 日韩 国产精品| 三级黄色片免费看| 污色网站在线观看| 少妇激情一区二区三区|