您好,欢迎访问一九零五行业门户网

es6中的map是什么意思

在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 会是更好的选择
一个object的键只能是字符串或者 symbols,但一个 map 的键可以是任意值,包括函数、对象、基本类型。
map 中的键值是有序的,而添加到对象中的键则不是。因此,当对它进行遍历时,map 对象是按插入的顺序返回键值。
你可以通过 size 属性直接获取一个 map 的键值对个数,而 object 的键值对个数只能手动计算。
map 可直接进行迭代,而 object 的迭代需要先 获取它的键数组,然后再进行迭代。
object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。虽然 es5 开始可以用 map = object.create(null) 来创建一个没有原型的对象,但是这种用法不太常见。
map 在涉及频繁增删键值对的场景下会有些性能优势。
示例如下:
// 字符串作为key,和js对象类似var map = new map()// setmap.set('name', 'john')//两个参数,分为对应map中key,value, 推进去的时候会自动检查类型,object,string,array等lmap.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) // '宽高'
结果:
【相关推荐:javascript视频教程、web前端】
以上就是es6中的map是什么意思的详细内容。
其它类似信息

推荐信息