Javascript 什么';ES6中需要一个Map类吗?
ES6标准的一个新特性是Map类,用于创建数据的键:值集合。好,对。但是,为什么Javascript需要这样一个类呢?JS对象表示法实际上也是数据的键:值集合,这还不够吗?那么,有什么区别呢 来自: 比较对象和贴图 对象与贴图类似,都允许您将关键点设置为值、检索这些值、删除关键点以及检测某个关键点是否存储了内容。正因为如此(也因为没有内置的替代品),历史上物体一直被用作地图;但是,对象和贴图之间存在一些重要的差异,这些差异使使用贴图变得更好:Javascript 什么';ES6中需要一个Map类吗?,javascript,dictionary,Javascript,Dictionary,ES6标准的一个新特性是Map类,用于创建数据的键:值集合。好,对。但是,为什么Javascript需要这样一个类呢?JS对象表示法实际上也是数据的键:值集合,这还不够吗?那么,有什么区别呢 来自: 比较对象和贴图 对象与贴图类似,都允许您将关键点设置为值、检索这些值、删除关键点以及检测某个关键点是否存储了内容。正因为如此(也因为没有内置的替代品),历史上物体一直被用作地图;但是,对象和贴图之间存在一些重要的差异,这些差异使使用贴图变得更好: 对象有一个原型,因此地图中有默认关键点。从ES5开
- 对象有一个原型,因此地图中有默认关键点。从ES5开始,可以通过使用
绕过这一点,但很少这样做map=Object.create(null)
- 对象的键是字符串和符号,它们可以是地图的任何值
- 当您必须手动跟踪对象的大小时,您可以轻松获得贴图的大小
- 密钥在运行时之前通常是未知的,您需要动态地查找它们吗
- 所有值是否具有相同的类型,并且可以互换使用
- 你需要不是字符串的键吗
- 是否经常添加或删除键值对
- 您是否有任意数量(易于更改)的键值对
- 集合是否迭代
- 对象有一个原型,因此地图中有默认关键点。从ES5开始,可以通过使用
绕过这一点,但很少这样做map=Object.create(null)
- 对象的键是字符串和符号,它们可以是地图的任何值
- 当您必须手动跟踪对象的大小时,您可以轻松获得贴图的大小
- 密钥在运行时之前通常是未知的,您需要动态地查找它们吗
- 所有值是否具有相同的类型,并且可以互换使用
- 你需要不是字符串的键吗
- 是否经常添加或删除键值对
- 您是否有任意数量(易于更改)的键值对
- 集合是否迭代
就我个人而言,最重要的是支持任何类型的值作为键,而不仅仅是字符串。您至少可以在复制和粘贴中复制格式。这篇文章有项目符号列表等等,更清晰。是的,刚刚编辑:)最好在最初发布时进行,而不是在发布后进行编辑。(这适用于一般的回答。)您至少可以复制复制粘贴中的格式。这篇文章有项目符号列表等等,更清晰。是的,刚刚编辑:)最好在最初发布时进行,而不是在发布后进行编辑。(这通常适用于回答。)