ECMAScript6中Map/WeakMap详解

 更新时间:2015年06月12日 10:44:35   投稿:hebedich  
这篇文章主要介绍了ECMAScript6中Map/WeakMap详解的相关资料,需要的朋友可以参考下

JS的对象本身就是个键值结构,ES6为什么还需要加Map呢,它与普通的JS对象有何区别?

一、Map

1. Map构造器

先看Map的简单用法

// 字符串作为key, 和JS对象类似
var map = new Map()
// set
map.set('name', 'John')
map.set('age', 29)
// get
map.get('name') // John
map.get('age') // 29

这么对代码,看起来确实没有JS对象简洁

但Map的强大之处在于它的key可以是任意类型

// 对象作为key演示
var xy = {x: 10, y: 20}  // 坐标
var wh = {w: 100, h: 200} // 宽高
var map = new Map()
// set
map.set(xy, '坐标')
map.set(wh, '宽高')
// get
map.get(xy) // '坐标'
map.get(wh) // '宽高'

以上演示了用对象作为key的Map。以下为图示

Map构造器还支持传数组方式

var map = new Map([["name", "John"], ["age", "29"]])
 
// 遍历key
for (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()
// set
map.set('name', 'John')
map.set('age', 29)
// get
map.get('name') // 'John'
map.get('age') // 29
 
// 遍历key
for (var key of map.keys()) {
  console.log(key)
}
 
// 遍历value
for (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
有以下方法

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • JavaScript中String对象的使用方法以及实例

    JavaScript中String对象的使用方法以及实例

    这篇文章主要给大家介绍了关于JavaScript中String对象的使用方法以及实例的相关资料,文中通过实例代码介绍的非常详细,方便开发者在JavaScript开发中更好地处理字符串,需要的朋友可以参考下
    2022-04-04
  • 对于防止按钮重复点击的尝试详解

    对于防止按钮重复点击的尝试详解

    这篇文章主要介绍了对于防止按钮重复点击的尝试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • JS实现点击事件统计的简单实例

    JS实现点击事件统计的简单实例

    下面小编就为大家带来一篇JS实现点击事件统计的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • js实现鼠标经过时图片滚动停止的方法

    js实现鼠标经过时图片滚动停止的方法

    这篇文章主要介绍了js实现鼠标经过时图片滚动停止的方法,可实现js滚动特效中的鼠标悬停停止图片滚动的功能,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • JavaScript 生成随机数并自动大小排序

    JavaScript 生成随机数并自动大小排序

    JavaScript按规定生成随机数,并按指定顺序自动排序,本例中将生成1——100以内的随机数,并按照由小到大的顺序排列起来。
    2009-12-12
  • 使用开源工具制作网页验证码的方法

    使用开源工具制作网页验证码的方法

    这篇文章主要介绍了使用开源工具制作网页验证码的方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • JavaScript 读URL参数增强改进版版

    JavaScript 读URL参数增强改进版版

    网上有不少JavaScript 读 URL 参数的函数,但没考虑到 URL 中带 # 符的情况,我的可以处理这种情况,并使用了点对象写法,优化了些性能。
    2008-10-10
  • 你所不了解的javascript操作DOM的细节知识点(一)

    你所不了解的javascript操作DOM的细节知识点(一)

    这篇文章主要介绍了你所不了解的javascript操作DOM的细节知识点的相关资料,需要的朋友可以参考下
    2015-06-06
  • JS实现中国公民身份证号码有效性验证

    JS实现中国公民身份证号码有效性验证

    这篇文章主要介绍了JS实现中国公民身份证号码有效性验证,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • yepnope.js 异步加载资源文件

    yepnope.js 异步加载资源文件

    yepnope.js是一个能够根据输入条件来选择性异步加载资源文件的js脚本,可以在页面上仅加载用户需要的js/css。
    2011-09-09

最新评论