• 技术文章 >web前端 >前端问答

    es6中的map是什么意思

    长期闲置长期闲置2022-03-30 18:41:32原创104

    在es6中,map是一种数据结构,是“key-value”的集合,key可以是任意类型的数据;map提供了“值与值”的对应,是一种更完善的hash结构实现,语法为“new Map([iterable])”。

    本教程操作环境:windows10系统、ECMAScript 6.0版、Dell G3电脑。

    es6中的map是什么意思

    什么是Map

    之前 ES5 中是没有 Map 这种数据集合的,ES6才把它添加进来了。

    Map 是 key-value 的集合,key 可以是任意类型的数据,类似于对象,但对象的 key 只能是字符串。

    ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。

    也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。

    如果你需要“键值对”的数据结构,Map 比 Object 更合适。

    语法

    new Map([iterable])

    Iterable 可以是一个数组或者其他 iterable 对象,其元素为键值对(两个元素的数组,例如: [[ 1, 'one' ],[ 2, 'two' ]])。

    每个键值对都会添加到新的 Map。

    null 会被当做 undefined。

    Object 和 Map 的比较:

    Objects 和 Maps 类似的是,它们都允许你按键存取一个值、删除键、检测一个键是否绑定了值。因此(并且也没有其他内建的替代方式了)过去我们一直都把对象当成 Maps 使用。不过 Maps 和 Objects 有一些重要的区别,在下列情况里使用 Map 会是更好的选择

    示例如下:

    // 字符串作为key,和JS对象类似
    var map = new Map()
    // set
    map.set('name', 'John')//两个参数,分为对应map中key,value,  推进去的时候会自动检查类型,Object,String,Array等l
    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) // '宽高'

    结果:

    19.png

    【相关推荐:javascript视频教程web前端

    以上就是es6中的map是什么意思的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:es6
    上一篇:es6中yield是什么意思 下一篇:es6中filter和map的区别是什么
    Web大前端开发直播班

    相关文章推荐

    • es6中symbol到底是什么• 什么是es6的解构• es6语法糖是什么意思• es6中promise有什么用• es5和es6的继承有什么区别

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网