摘要:概述也是一个新的数据结构,在中其实也经常用到,比如下面的栗子,我们经常这么使用一个对象,与其说他是对象,其实他更像一个,但是比起真正的,这个还是有点弱了,初始化初始化一个有一个可选的参数,该参数必须是一个可迭代对象,可迭代对象包括和用户定
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()
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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...
阅读 688·2021-11-24 10:30
阅读 1225·2021-09-24 09:48
阅读 3049·2021-09-24 09:47
阅读 3525·2019-08-29 17:11
阅读 2849·2019-08-29 15:38
阅读 2244·2019-08-29 11:03
阅读 3567·2019-08-26 12:15
阅读 983·2019-08-26 10:45