js对象获取属性有两种方法:1.通过.的方式  2. 通过[]方式

// 通过.方式获取属性值,key是静态的
var aa = {name: "zhang", age: 18};
console.log(aa.name);
 
// 通过[]获取属性值, key是动态的,可以是字符串,或者数字的形式
var bb = {"apple": 3, "pear": 2}
var cc = {1: "number1", 2: "number2"}
console.log(bb["apple"]);
console.log(cc[1]);  // 注意这里的写法跟数组容易混淆,cc仍是对象,不是数组. 这种写法不对吧,我在https://www.w3schools.com/js/tryit.asp?filename=tryjs_map_create_array的编辑器上试了也不行!
 
// 获取对象所有key的方法
console.log(Object.keys(bb));  // 输出[ 'apple', 'pear' ]

=========================分割线===========================

map对象是[],如:var map = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

对象是{},如:var aa = {name:"zhang",age:18};
但是也可以定义这样的对象,如:var bb = {"name":"goals",age:18}; //这种当成了键值对?

总结:
var aa = {name:"zhang",age:18};//key值都没有""
var bb = {"name":"goals",age:18};//key值,一个有"",一个没有
var cc = {"name":"goals","age":18};//key值都有""

取值方法:
aa.name 可
aa["name"]  可
aa[name] 不可
bb,和cc的结果均与aa一致(在 https://www.w3schools.com/js/tryit.asp?filename=tryjs_map_create_array 编辑器上)

发表回复