当前位置: 移动技术网 > IT编程>开发语言>JavaScript > javascript获取属性的两种方法及区别

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

2018年09月23日  | 移动技术网IT编程  | 我要评论

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

var obj={}
obj.x=1
console.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]=1
arr[2]=2

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

为什么不像

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

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

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

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网