为了账号安全,请及时绑定邮箱和手机立即绑定

javascript获取属性的两种方法及区别

标签:
JavaScript

javascript获取属性有两种方式,点或者中括号:

复制代码

var obj={}
obj.x=1console.log(obj.x)//1  第一种方式,x是字面量try{
    console.log(obj[x])//ReferenceError: x is not defined  相当于调用obj."undefined"}catch(e){
    console.log("err:"+e)
}
x="str"console.log(obj[x])
x="x"console.log(obj[x])//x是一个变量,先计算出值并转换为字符串,在获取相应的属性名

复制代码

 当你用第一种方式的时候,属性必须是一个合法的变量名,如果属性名字是 2 或者 “john smith”就行不通了,这时你只能用中括号 obj[2]或者obj["john smith"].所以你会联想的数组,有人说javascript里面甚至没有数组,只有属性,因为你可以这样定义:

arr=[]
arr[0]=1arr[2]=2

中间跳过了arr[1],如果你要取arr[1]也可以,只是会得到undefined

为什么不像

console.log(obj[x])//ReferenceError: x is not defined 相当于调用obj."undefined"

这样抛异常呢,因为1不是undefined,是字面量

中括号还有个好处,就是属性的名字可以动态的计算,比如用循环语句去遍历一个对象的属性

 

原文出处:https://www.cnblogs.com/gzz2018/p/9693384.html  

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消