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

    es6中map和object的区别是什么

    青灯夜游青灯夜游2022-11-17 13:56:23原创189

    区别:1、Map的键可以是任意值,而Object的键必须是一个String或是Symbol。2、Map中的key是有序的,而Object的键是无序的。3、Map的键值对个数可以轻易地通过size属性获取,而Object的键值对个数只能手动计算。4、Map可以直接被迭代,而Object不可以直接被迭代。5、Map在频繁增删键值对的场景下表现更好,而Object的效率比较差。

    大前端成长进阶课程:进入学习

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

    Map和Object的概念

    Object

    在ECMAScript中,Object是一个特殊的对象。它本身是一个顶级对象,同时还是一个构造函数,可以通过它(如:new Object())来创建一个对象。我们可以认为JavaScript中所有的对象都是Object的一个实例,对象可以用字面量的方法const obj = {}即可声明

    Map

    Map是Object的一个子类,可以有序保存任意类型的数据,使用键值对去存储,其中键可以存储任意类型,通过const m = new Map();即可得到一个map实例。

    Map类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。Map 可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。

    Map和Object的区别


    MapObject
    键的类型一个 Map的键可以是任意值,包括函数、对象或任意基本类型。一个Object 的键必须是一个 String 或是Symbol。
    键的顺序Map 中的 key 是有序的。因此,当迭代的时候,一个 Map 对象以插入的顺序返回键值。一个 Object 的键是无序的。注意:自ECMAScript 2015规范以来,对象确实保留了字符串和Symbol键的创建顺序; 因此,在只有字符串键的对象上进行迭代将按插入顺序产生键。
    SizeMap 的键值对个数可以轻易地通过size 属性获取Object 的键值对个数只能手动计算
    迭代Map 是 iterable 的,所以可以直接被迭代。迭代一个Object需要以某种方式获取它的键然后才能迭代。
    性能在频繁增删键值对的场景下表现更好。在频繁添加和删除键值对的场景下未作出优化。

    【推荐学习:javascript高级教程

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:ES6
    上一篇:javascript怎么求13阶乘 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• es6怎么求数组最大值• es6数组怎么删除最后一个元素• es6怎么修改数组的值• es6怎么移除全部数组元素• es6怎么找出2个数组中不同项
    1/1

    PHP中文网