对象获取属性常见两种方法:
1. 点语法
2. []语法
举个栗子
var obj = {
'': 20,
1:110,
'1' : '120',
'name' : '马云'
}
var msg = 'name';
//我们来分别输出obj对象里的每条属性
-- ''
console.log(obj.''); //报错,点语法无法获取
console.log(obj['']); // 20, []语法可以
-- 1
console.log(obj.1); // 报错,点语法无法获取
console.log(obj[1]); // 120, []语法可以,后面会说为什么不是110
-- '1'
console.log(obj.'1'); //报错
console.log(obj['1']); //120
-- 'name' ,利用变量来获取
console.log(obj.msg); //undefined,点语法会直接从对象里找是否有该属性
console.log(obj[msg]); //马云, []会先获取msg变量中的值,利用该值从对象中查找。所以当某函数需要接收参数时,若该参数要被对象所利用来查找对象中的属性,一定要用[]语法
总结
- []语法查找某个属性时,会优先查找带有引号' '的属性,如上例中的1和'1'
- []语法在任何情况都适用,而点语法漏洞百出,所以用什么就不bb了









网友评论