一:特点: 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)=>"呵呵呵呵呵呵"}
浙公网安备 33010602011771号