一个高级的es6语法对象Map
大家好,今天我给大家讲一下js里面的es6语法Map对象,这个对象特别有意思,他是es6新增的一个特别的对象;
在js里面对象(object)的键值只能是字符串或者symols,但是map不一样,他的键值可以是任意类型的值,我们举个列子:
let m =new Map(); //这里我们new一下对象 let p={ name:"今天的天气" } m.set(p,"晴天") //这里我们,就用了一个对象当键,不可思议 //接下来获取也是用这个键值获取 const u=m.get(p) console.log(u) //结果:" 晴天"
所以说map这个特殊的对象,让我们更加的方便存值
map的键值都是有序的,遵守FIFO原则,而添加到对象上面就不是
比起普通的对象,map的size属性也是十分的方便,一般来说,object的键值个数只能手动计算,而map可以直接通过size获取他的键值个数
1 let Mymap=new Map() 2 m.set("name","前端") //name是键 后面的是值 3 4 m.set("change",function(){ 5 console.log("我们可以变得更加优秀") 6 }) //name是键 后面的是值 可以是数组,对象,函数 7 8 console.log(m.size) //2
通过这张图我们可以看出object和map的比较
看到这里可能有人要问了说map这么好,为什么实际开发见到的还是object;
我想说的是每个业务的需求不一样,现在开发大部分的需求,靠object就可以解决了,js里面主要分为七种内置类型,而七种内置类型分为两大类型:基本类型和对象(object)
由于object的字面量用起来更加方便开发者操作数据,更加的直观;
所以大部分还是以object为主;
可能又有人要问了,既然很少用map,那map是不是没用了呢?
那也不是,map虽然暂时用的少,在某些严谨的数据操作方面还是可以的,
map可以与数组进行转换,更加方便数据的转换
你可以想象一个对象的键值是数组的时候那是怎么样的感受

浙公网安备 33010602011771号