请问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的值。难道对象和数组没区别?
展开
 我来答
绛紫方糖
2013-10-18 · TA获得超过742个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:234万
展开全部
对象的属性确实可以通过类似于通过访问数组的中括号形式进行访问。
原理上来讲,是js这样设计的,很多弱类型语言都是如此设计。
可是并不能理解为对象跟数组没区别,例如说,你可以使用Array类型方括号的形式访问Object类型数据的属性。但是反过来,不能使用Object的点号访问Array类型数据的内容。
在js里,Key对应Value的数据结构,其实都是Object类型的,Array类型的数据都是一维的,数字下标的数据集合。

另外,二楼给你举得例子是没问题的,非常实用,插一句,还有另一种情况
就是你要访问的key是有空格的,也可以使用这种方式,例如说 people['first name'],这种情况是没法使用点号进行访问的。

最后,一楼的那个理解完全是错误的,这跟JSON没任何关系
zhaoapk
推荐于2017-11-26 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1625万
展开全部

两个都是获取对象值的方式。


第二个用变量名获取对象值的时候很有用。

var obj = {
 name:'lily',
 year:'20'

}
alert(obj.year);
var y = 'year';
// 用变量获取
alert(obj[y]);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
源o0Forever
2013-10-18 · TA获得超过454个赞
知道小有建树答主
回答量:233
采纳率:100%
帮助的人:178万
展开全部
个人认为这个就是json格式的神奇,js是弱类型语言,不强调类型。json总的来说就是key-value模型的,一个key对应一个value。你的第二种用法并没用到数组特性,js并不强调这些。并不是[]内的都是数组,第二种写法个人的理解是,object这个对象中,year这个key对应的value。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式