一个高级的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可以与数组进行转换,更加方便数据的转换

你可以想象一个对象的键值是数组的时候那是怎么样的感受

posted @ 2022-06-07 09:35  只心  阅读(164)  评论(1)    收藏  举报