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 编辑器上)