摘要:概述也是一個新的數據結構,在中其實也經常用到,比如下面的栗子,我們經常這么使用一個對象,與其說他是對象,其實他更像一個,但是比起真正的,這個還是有點弱了,初始化初始化一個有一個可選的參數,該參數必須是一個可迭代對象,可迭代對象包括和用戶定
0x000 概述
Map也是一個新的數據結構,在js中其實也經常用到,比如下面的栗子,我們經常這么使用一個對象,與其說他是對象,其實他更像一個Map,但是比起真正的Map,這個還是有點弱了,
let color={ "red":"#FF0000", "green":"#00FF00", "blue":"#0000FFF" } color["red"]0x001 初始化
new Map([iterable])
初始化一個Map有一個可選的參數,該參數必須是一個可迭代對象,可迭代對象包括String、Array、Array-Like obejct(Arguments、NodeList)、Typped Array、Set、Map和用戶定義的可迭代對象。
數組
new Map([[1,2],[3,4]]) // Map(2)?{1 => 2, 3 => 4}0x002 添加
和對象作為Map相比,Map的鍵可以是任意值,甚至可以是NaN
var myMap = new Map(); var keyObj = {}, keyFunc = function () {}, keyString = "a string"; // 添加鍵 myMap.set(keyString, "和鍵"a string"關聯的值"); myMap.set(keyObj, "和鍵keyObj關聯的值"); myMap.set(keyFunc, "和鍵keyFunc關聯的值");0x003 獲取Map的大小
myMap.size // 30x004 獲取
myMap.get(keyString) // "和鍵"a string"關聯的值" myMap.get(keyObj) // "和鍵keyObj關聯的值" myMap.get(keyFunc) // "和鍵keyFunc關聯的值"0x005 是否包含
myMap.has(keyString) // true myMap.has("1") // false0x006 刪除
myMap.delete(keyString) // true myMap.delete("") // false0x007 遍歷
myMap.forEach(m=>{console.log(m)}) // 和鍵"a string"關聯的值 // 和鍵keyObj關聯的值 // 和鍵keyFunc關聯的值0x008 獲取迭代器
let entries=myMap.entries() entries.next().value // 和鍵"a string"關聯的值 entries.next().value// 和鍵keyObj關聯的值 entries.next().value// 和鍵keyFunc關聯的值0x009 獲取 key 迭代器
let keys=myMap.keys() keys.next().value // "a string" keys.next().value// function () {} keys.next().value// {}0x010 獲取 value 迭代器
let values=myMap.values() values.next().value // 和鍵"a string"關聯的值 values.next().value// 和鍵keyObj關聯的值 values.next().value// 和鍵keyFunc關聯的值0x011 清除
mySet.clear()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99250.html
摘要:概述反射說起來和上一章節的代理基本一樣,只是使用的方式不同,設計理念也不同。 0x000 概述 反射說起來和上一章節的代理基本一樣,只是使用的方式不同,設計理念也不同。 反射提供了一系列的靜態函數,可以使用Reflect.function_name(...prams)調用,這一系列的方法和代理的處理器對象方法一致 0x001 apply 語法 Reflect.apply(targ...
摘要:概述代理嘛,就是請代理人代替自己做某件事,但是和自己不一樣的是代理人可以有自己的行為,甚至可以做出和預期相違背的行為。 0x000 概述 代理嘛,就是請代理人代替自己做某件事,但是和自己不一樣的是代理人可以有自己的行為,甚至可以做出和預期相違背的行為。 0x001 栗子 聲明一個普通對象origin,他有一個屬性name let origin={ name: origin } ...
摘要:可以看到,父級更新了,子組件也同步更新了,也就完成了父組件向子組件發起通信的目的。當然我們也可以通過適當的組件設計來避免過深的組件嵌套通信。所以這就解決了遠程組件通信深度組件嵌套的問題。組件間通信可以選擇像這樣的庫來處理。 0x000 概述 這一章講組件間通信,組件通信分為很多種: 父組件向子組件發起通信 子組件向父組件發起通信 兄弟組件間通訊 遠程組件通信 在組件通信中,有一種錯...
摘要:聲明的變量不得改變值,這意味著,一旦聲明變量,就必須立即初始化,不能留到以后賦值。解構賦值允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構。對象的解構賦值對象的屬性沒有次序,變量必須與屬性同名。 ES6 新增特性整理講解 新增命令 1.let命令 ES6新增了let命令,用來聲明變量。它的用法類似于var,但是也存在新的特性。 - **let所聲明的變量,只在le...
閱讀 720·2021-11-24 10:30
閱讀 1254·2021-09-24 09:48
閱讀 3074·2021-09-24 09:47
閱讀 3588·2019-08-29 17:11
閱讀 2875·2019-08-29 15:38
閱讀 2270·2019-08-29 11:03
閱讀 3594·2019-08-26 12:15
閱讀 1008·2019-08-26 10:45