No.012 获取对象属性的点方法和中括号法

(以下所有内容仅用以记录学习过程中的个人理解,如有错误欢迎指出)

在JS中,获取对象属性的方式有两种:

  1. 通过点方法xxx.yyy
  2. 通过中括号法xxx[yyy]
var obj = {
	name: "Alice",
	age: 18
};

console.log(obj.name); //Alice
console.log(obj["age"]); //18

1. 主要区别

两种方法的主要区别如下:

1.1 关于变量作属性名

中括号法可以用变量作为属性名,而点方法不可以:

var obj = {
	name: "Alice",
};
var myName = "name";

console.log(obj.name); //Alice
console.log(obj.myname); //undefined
console.log(obj["name"]); //Alice
console.log(obj[myName]); //Alice

在上例中,几乎所有的编程语言,没有引号的合法标识符都表示一个变量,这个变量单独写出来就表示一个最基本的表达式,表达式的值就是变量的值

个人理解是在中括号法中,变量名不打引号,属性名打引号

1.2 关于数字作属性名

中括号法可以用数字作为属性名,而点方法不可以:

var obj = {
	name: "Alice",
	"123": 18,
};

console.log(obj.123); //报错
console.log(obj["123"]); //Alice

1.3 关于关键字/保留字作属性名

中括号法可以使用JS的关键字/保留字作为属性名,而点方法不可以(但应尽量避免在变量/属性中使用关键字/保留字):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值