久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久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號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
欧美激情视频一区二区三区免费 | 亚洲欧洲日本mm| 精品日产乱码久久久久久仙踪林| 日韩精品一区二区三区中文| 久久精品国产成人一区二区三区| 欧美日韩国产综合网| 国产成人黄色| 欧美韩日一区| 久久免费国产| 婷婷精品进入| 亚洲字幕久久| 日韩欧美四区| 欧美片网站免费| 国产另类在线| 国产精品福利在线观看播放| 97精品国产| 久久香蕉国产| 久久性天堂网| 国产日韩一区二区三免费高清 | 久久99影视| 精品三级国产| 秋霞影院一区二区三区| 亚洲大全视频| 欧美中文日韩| 午夜亚洲福利| 久久a爱视频| 欧美日韩视频网站| 一级欧洲+日本+国产| 日韩有吗在线观看| 久久免费福利| 激情综合网址| 亚洲三区欧美一区国产二区| 国产精品美女午夜爽爽| 国产精品**亚洲精品| 日本免费一区二区三区四区| 香蕉精品视频在线观看| 日本不卡高清| 成人污污视频| 欧美日韩免费观看一区=区三区| 亚洲精品乱码日韩| 麻豆精品蜜桃视频网站| 国产成人免费| 久久高清国产| 久久99青青| 亚洲国产不卡| 国产午夜精品一区在线观看| 欧美丰满日韩| 亚洲一区二区三区四区电影| 日本va欧美va精品发布| 高清一区二区三区| 99成人在线| 久久gogo国模啪啪裸体| 亚洲午夜精品久久久久久app| 亚洲免费福利一区| 日本一二区不卡| 在线精品亚洲| 国产不卡精品| 首页国产欧美久久| 国产在线观看91一区二区三区| 伊人久久亚洲美女图片| 国产乱码精品一区二区亚洲| 亚洲成av在线| 日韩福利视频导航| 手机在线电影一区| 国产视频一区免费看| 91精品国产自产精品男人的天堂| 亚洲www啪成人一区二区| 日韩精品亚洲专区在线观看| 国产精品精品国产一区二区| 丝袜美腿一区二区三区| 国产欧美欧美| 亚洲少妇在线| 欧美日韩在线精品一区二区三区激情综合| 亚洲国产专区校园欧美| 日韩高清不卡在线| 精品精品99| 日本精品影院| 日韩精品导航| 黄色在线网站噜噜噜| 日韩精品欧美大片| 99久久婷婷| 美女视频一区在线观看| 手机精品视频在线观看| 欧美一级鲁丝片| 国产日韩免费| 亚洲欧美日本国产专区一区| 98精品视频| 国产精品亚洲二区| 在线综合欧美| 99久久精品网站| 麻豆精品在线观看| 不卡一二三区| 欧美日一区二区三区在线观看国产免| 麻豆91精品91久久久的内涵| 日韩一区二区三免费高清在线观看 | 国产一区二区三区久久久久久久久| av不卡在线看| 吉吉日韩欧美| 免费一级欧美片在线观看网站 | 999在线观看精品免费不卡网站| 首页国产精品| 在线精品视频一区| 在线一区欧美| 99免费精品| 午夜精品成人av| av免费不卡国产观看| 欧美国产日韩电影| 国产欧美一区| 日韩av网站在线免费观看| 午夜精品影视国产一区在线麻豆| 日韩专区欧美专区| 亚洲欧洲午夜| 黄色免费成人| 黄色成人91| 中文日韩欧美| 欧美在线综合| 亚洲激精日韩激精欧美精品| 激情久久五月| 91精品高清| 国产亚洲一级| 日韩在线一二三区| 亚洲影视一区二区三区| 日韩在线一区二区| 蜜桃视频在线观看一区| 亚洲综合专区| 国产日韩一区| 久久精品国产久精国产爱| 久久一区欧美| 麻豆成全视频免费观看在线看| 久久男人天堂| 欧美一区二区三区高清视频| 亚洲a在线视频| 好看的av在线不卡观看| 亚洲欧美日韩精品一区二区| 亚洲午夜国产成人| 日本午夜精品久久久| 国产精品免费不| 国产欧美一区二区三区精品酒店| 四虎4545www国产精品 | 国产欧美一级| 精品福利久久久| 久久毛片亚洲| 亚洲性色视频| 91国语精品自产拍| 99视频在线精品国自产拍免费观看| 亚洲黄页一区| 日韩1区2区3区| 精品视频国产| 国产综合婷婷| 综合日韩在线| 欧美黑人巨大videos精品| 福利欧美精品在线| 免费视频一区三区| 亚洲一区欧美| 免费一区二区三区在线视频| 欧美精品高清| 免费在线成人网| 国产精品中文字幕制服诱惑| 欧美aa在线视频| 欧美一级精品| 日本不卡视频在线观看| 久久久久亚洲精品中文字幕| 亚洲国产专区| 青青伊人久久| 久久久久美女| 青青国产精品| 99久久久国产精品美女| 日本电影久久久| 日本免费久久| 四虎成人精品一区二区免费网站| 精品视频一区二区三区在线观看| 欧美日中文字幕| 欧美日韩一区二区三区不卡视频 | 亚洲精品第一| 国产精品成久久久久| 中日韩男男gay无套| 久久99影视| 亚洲精品午夜av福利久久蜜桃| 日韩av不卡一区二区| 波多野结衣久久精品| 亚洲三级av| yellow在线观看网址| 日韩午夜一区| 国产美女亚洲精品7777| 99久久夜色精品国产亚洲1000部| 日韩高清二区| 1024精品一区二区三区| 国产精品入口久久| 国产精品91一区二区三区| 国产精品日本一区二区三区在线 | 99成人在线| 九九九精品视频| 免费成人在线视频观看| 蜜桃久久久久| 日韩一区精品视频| 成人自拍av| 国产精品午夜av| 丝袜a∨在线一区二区三区不卡| 国产成人77亚洲精品www| 亚洲+小说+欧美+激情+另类|