数组索引为什么可以用字符串索引,是进行转换了吗

现在有数组如下

var a = [1,2,[3,4]]

以前一直以为如果要输出4,应该a[2][1] 但是发现犀牛书上给出的是a[2]['1']
我试了一下 发现都可以
在我的理解里方括号应该是索引值啊 为什么字符串也可以是先进行转换了吗?

阅读 5.6k
1 个回答

数组的索引本身就是字符串,JavaScript 语言规定,对象的键名一律为字符串,数组也是一种对象,因此数组的键名其实也是字符串。之所以可以用数值读取,是因为非字符串的键名会自动被转为字符串。

对象是javascript的基本数据类型。对象是一种复合值。它将很多值(原始值 或者其他对象)聚合在一起。可通过名字访问这些值。对象也可以看做是属性的无序集合,每个属性都有一个名/值。属性名是字符串,因此我们可以把对象看成是从字符串到值的映射。 出自JavaScript权威指南第6版第六章对象 P118

数组是对象的页数形式。使用方括号访问数组元素就像用方括号访问对象的属性一样。JavaScript将指定的数字索引值换成字符串——索引值1变成“1”.... 出自JavaScript权威指南第6版第七章数组 P146

帮您查完了!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题