久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久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號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
日韩精品专区| 日韩精品成人| 性欧美xxxx免费岛国不卡电影| 香蕉久久久久久| 亚洲电影在线一区二区三区| 国产福利91精品一区二区| 欧美日韩亚洲一区三区| 亚洲三级视频| 国产美女精品| 欧美1级日本1级| 国产精品hd| 日本欧美一区二区在线观看| 天堂av在线一区| 欧美日韩国产亚洲一区| 亚洲黄色网址| 黄色在线观看www| av中文资源在线资源免费观看| 日韩精品亚洲aⅴ在线影院| 亚洲不卡av不卡一区二区| 久久久久久久欧美精品| 热三久草你在线| 麻豆网站免费在线观看| 国产综合欧美| 欧美99久久| 久久免费国产| 偷拍欧美精品| 欧美日韩四区| 蜜桃一区二区三区在线观看| 老鸭窝毛片一区二区三区| 久久一二三区| 日本一不卡视频| 91九色综合| 国产精品成人**免费视频| 国产麻豆一区| 久久av导航| 欧美国产一级| 国产在线日韩| 中文字幕av一区二区三区四区| 亚洲一区av| 亚洲中午字幕| 日韩午夜视频在线| 欧美精品国产白浆久久久久| 欧美一级网址| 久久久久久夜| 免费欧美一区| 亚洲字幕久久| 国产精品欧美日韩一区| 精品一级视频| 国产伦久视频在线观看| 日韩在线综合| 亚洲欧洲日本mm| 日本国产欧美| 国产乱子精品一区二区在线观看| 免费在线欧美黄色| 欧美精选视频一区二区| 99国产精品私拍| 亚久久调教视频| 国产精品久久久久久久久久白浆 | 中文字幕av一区二区三区四区| 亚洲综合图色| 国产精品国产三级在线观看| 99精品视频在线观看免费播放| 红桃视频国产精品| 日韩avvvv在线播放| 久久精品av| 日韩国产欧美一区二区三区| 女生影院久久| 亚洲精品激情| 97在线精品| 人人精品久久| 亚洲深夜视频| 日韩综合一区二区| 免费国产自久久久久三四区久久| 日韩极品在线观看| jiujiure精品视频播放| 欧美亚洲免费| 宅男在线一区| 欧美国产中文高清| 影院欧美亚洲| 美日韩一区二区三区| 国户精品久久久久久久久久久不卡| 免费在线欧美视频| 精品三级在线观看视频| 男人的天堂久久精品| 欧美视频二区| 91成人超碰| 久久精品人人| 日韩精品一级二级| 成人在线丰满少妇av| 蜜臀久久99精品久久久久久9| 国产精品中文字幕制服诱惑| 欧美国产美女| aa国产精品| 麻豆精品少妇| 日韩精品一页| 午夜欧美视频| 国产高清视频一区二区| 丝袜脚交一区二区| se01亚洲视频 | 久久人人精品| 国产欧美日韩在线观看视频| 在线国产一区| 成人午夜亚洲| 日韩精品中文字幕吗一区二区| 日本美女一区| 亚洲综合激情在线| 久久久水蜜桃av免费网站| 久久超级碰碰| 国产精品久久久久毛片大屁完整版| 免费日韩精品中文字幕视频在线| 欧美xxxx中国| 麻豆精品99| 日韩高清不卡在线| 国产亚洲精品久久久久婷婷瑜伽| 欧美日韩尤物久久| 国产成人免费| 精品一区二区三区中文字幕| 久久精品国产99| 久久精品资源| 精品亚洲自拍| 久久久久久久欧美精品| 日日夜夜免费精品视频| 亚洲精品影院在线观看| 蜜桃一区二区三区在线观看| 蜜桃视频一区二区| 日韩欧美中文字幕在线视频| 91精品国产一区二区在线观看| 国产欧美一区| 丰满少妇一区| 欧美sm一区| 蜜桃视频欧美| 男女性色大片免费观看一区二区| 亚洲欧洲美洲国产香蕉| 91亚洲精品在看在线观看高清| 亚洲精选成人| 欧美片网站免费| 精品高清久久| 欧美午夜精品一区二区三区电影| 欧美1区免费| 快she精品国产999| 青青草国产成人99久久| 久久久91麻豆精品国产一区| 国产成人久久精品麻豆二区| 日韩精品一卡| 一本色道久久精品| 亚洲精品欧美| 欧美国产另类| 天堂日韩电影| 中文字幕av一区二区三区四区| 日本精品另类| 老司机精品在线| 日韩国产一区二区三区| 99热国内精品| 亚洲一区二区三区无吗| 国产日韩视频| 理论片午夜视频在线观看| 黄色日韩在线| 日韩欧美中文字幕一区二区三区 | 蜜桃成人av| 日韩精品欧美精品| 久久一区国产| 久久久夜精品| 亚洲精选久久| 国内精品伊人| 亚洲精品一区二区妖精| 欧美精品国产白浆久久久久| 成人国产精品一区二区免费麻豆| 欧美日韩在线二区| 热久久久久久| 99久久夜色精品国产亚洲1000部| 亚洲毛片视频| 丁香婷婷久久| 久久国产66| 激情中国色综合| 三级欧美韩日大片在线看| 久久一区国产| 午夜一级在线看亚洲| 国产欧美日韩| 欧美在线亚洲| 精品视频高潮| 亚洲精品进入| 欧美aa在线观看| 日本欧美一区二区在线观看| 久久久久久久久丰满| 欧美一级一区| 婷婷亚洲五月色综合| 麻豆精品av| 蜜臀久久99精品久久久久宅男 | 国产精选一区| 91精品91| 国产一区二区三区日韩精品| 久久亚洲电影| а√在线中文在线新版| 三级久久三级久久久| 久久久成人网| 国产精品久久久久久av公交车| 91国语精品自产拍| 国产成人1区| 日本午夜精品久久久久| 亚洲成av在线|