请问js对象属性值为什么用数组也可以访问
varobj={name:'lily',year:'20'}alert(obj.year);alert(obj['year']);这两种都能访问到year的值。难道对象和...
var obj = {
name:'lily',
year:'20'
}
alert(obj.year);
alert(obj['year']);
这两种都能访问到year的值。难道对象和数组没区别? 展开
name:'lily',
year:'20'
}
alert(obj.year);
alert(obj['year']);
这两种都能访问到year的值。难道对象和数组没区别? 展开
3个回答
展开全部
对象的属性确实可以通过类似于通过访问数组的中括号形式进行访问。
原理上来讲,是js这样设计的,很多弱类型语言都是如此设计。
可是并不能理解为对象跟数组没区别,例如说,你可以使用Array类型方括号的形式访问Object类型数据的属性。但是反过来,不能使用Object的点号访问Array类型数据的内容。
在js里,Key对应Value的数据结构,其实都是Object类型的,Array类型的数据都是一维的,数字下标的数据集合。
另外,二楼给你举得例子是没问题的,非常实用,插一句,还有另一种情况
就是你要访问的key是有空格的,也可以使用这种方式,例如说 people['first name'],这种情况是没法使用点号进行访问的。
最后,一楼的那个理解完全是错误的,这跟JSON没任何关系
原理上来讲,是js这样设计的,很多弱类型语言都是如此设计。
可是并不能理解为对象跟数组没区别,例如说,你可以使用Array类型方括号的形式访问Object类型数据的属性。但是反过来,不能使用Object的点号访问Array类型数据的内容。
在js里,Key对应Value的数据结构,其实都是Object类型的,Array类型的数据都是一维的,数字下标的数据集合。
另外,二楼给你举得例子是没问题的,非常实用,插一句,还有另一种情况
就是你要访问的key是有空格的,也可以使用这种方式,例如说 people['first name'],这种情况是没法使用点号进行访问的。
最后,一楼的那个理解完全是错误的,这跟JSON没任何关系
展开全部
两个都是获取对象值的方式。
第二个用变量名获取对象值的时候很有用。
var obj = {
name:'lily',
year:'20'
}
alert(obj.year);
var y = 'year';
// 用变量获取
alert(obj[y]);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
个人认为这个就是json格式的神奇,js是弱类型语言,不强调类型。json总的来说就是key-value模型的,一个key对应一个value。你的第二种用法并没用到数组特性,js并不强调这些。并不是[]内的都是数组,第二种写法个人的理解是,object这个对象中,year这个key对应的value。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询