时间:2021-05-28
JS的对象本身就是个键值结构,ES6为什么还需要加Map呢,它与普通的JS对象有何区别?
一、Map
1. Map构造器
先看Map的简单用法
// 字符串作为key, 和JS对象类似var map = new Map()// setmap.set('name', 'John')map.set('age', 29)// getmap.get('name') // Johnmap.get('age') // 29这么对代码,看起来确实没有JS对象简洁
但Map的强大之处在于它的key可以是任意类型
// 对象作为key演示var xy = {x: 10, y: 20} // 坐标var wh = {w: 100, h: 200} // 宽高var map = new Map()// setmap.set(xy, '坐标')map.set(wh, '宽高')// getmap.get(xy) // '坐标'map.get(wh) // '宽高'以上演示了用对象作为key的Map。以下为图示
Map构造器还支持传数组方式
var map = new Map([["name", "John"], ["age", "29"]]) // 遍历keyfor (var key of map.keys()) { console.log(key) // name, age}2. 迭代
和Set一样用for of来迭代Map,键调用map.keys(),值调用map.values(),键值实体调用map.entries()
var map = new Map()// setmap.set('name', 'John')map.set('age', 29)// getmap.get('name') // 'John'map.get('age') // 29 // 遍历keyfor (var key of map.keys()) { console.log(key)} // 遍历valuefor (var val of map.values()) { console.log(val)} // 遍历实体for (var arr of map.entries()) { console.log('key: ' + arr[0] + ', value: ' + arr[1])} // 遍历实体的简写for (var [key, val] of map.entries()) { console.log('key: ' + key + ', value: ' + val)}3. 方法和属性
二、WeakMap
与Map的区别
不接受基本类型的值作为键名
没有keys、values、entries和size
有以下方法
以上所述就是本文的全部内容了,希望大家能够喜欢。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
es6是ECMAScript6(以下简称ES6)。 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,EuropeanComputerMa
介绍ECMAScript6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript201
JavaScript箭头函数是ECMAScript6中引入的编写函数表达式的一种简便方法。通常,在JavaScript中,可以通过两种方式创建函数:函数语句。函
本文实例讲述了ES6中newFunction()语法及应用。分享给大家供大家参考,具体如下:学习《ECMAScript6入门》中的模板字符串的案例中看见了new
使用let语句,允许你在JavaScript中创建块范围局部变量。let语句是在JavaScript的ECMAScript6标准中引入的。在你往下了解let语句