对象的两种取值方式——点方式和[ ]方式
程序员文章站
2022-04-10 13:58:53
...
// 对象取值————点方法和[]方法
var obj = {a:{a1:"a2"},b:"b1",0:"00"};
var key = 'a';
var key2 = "a.a1";
console.log(
// 一级取值:
//键名是字符串
obj.a, // { a1: 'a2' }
obj['a'], // { a1: 'a2' }
obj.b, // 'b1'
obj['b'], // 'b1'
// 键名是数字
// obj.0, 无法获取,报错
obj[0], //'00'
// 键名是变量
obj.key, // undefined
eval("obj."+key), //{ a1: 'a2' }
obj[key], // { a1: 'a2' }
// 多级取值
obj.a.a1, // a2
obj['a']['a1'], // a2
eval("obj."+key2), // a2
obj[key2], // undefined
);
/*
总结:
点方式的键名是省略引号的字符串,且只能是字符串,键名是数字或者变量时,只能使用[]方式。
当变量代表的键名是多级时,不能使用[]方式,可以配合eval()使用点方式
*/