一:特点:
1:类似于对象,本质上是键值对的集合
2:键 不局限于字符串,各种类型的值(包括对象)都可以当作键
3:对象 “字符串-值”,Map "值-值" 是一种更加完善的Hash结构实现

看个例子:
let obj = {a:1},obj1={b:2},obj3={};
obj3[obj] = '天空';
console.log(obj3);  这里输出结果为:{[object Object]:"天空"}
当再加一个的时候:
obj3[obj1] = '大海';
console.log(obj3);  这里输出结果为:{[object Object]:"大海"}
可以看到 “天空” 被覆盖了
这里原因如下:
obj3[obj1]  里的obj1 和 obj 两个参数都会被js编辑器使用 .toString()方法
转换成字符串类型,也就是说
console.log(obj1.toString() === obj.toString())  true

二:创建Map
const map = new Map({
['name','张山'],
[''age",18],
["sex",""]
});
console.log(map)
打印结果为:{“name”=>"张山","age"=>18,"sex"=>""}

补充说明:
let obj1={a:1},obj2={b:2};
const map = new Map({
['name','张山'],
[''age",18],
["sex",""],
[obj1,'中国人'],
[obj2,'您好']
});
打印后,发现是不会覆盖的,{Object=>"中国人",{Object=>"您好"}}
当然还可以添加 [[1,2],"呵呵呵呵呵呵"]
也是可以正常输出的 {Array(2)=>"呵呵呵呵呵呵"}

 

posted on 2018-02-07 22:46  YKing_匆  阅读(135)  评论(0)    收藏  举报