为什么字符串索引在JavaScript数组中是合法的?
这是合法的:为什么字符串索引在JavaScript数组中是合法的?,javascript,Javascript,这是合法的: var arr = [1, 2, 3, 4, 5]; arr['ex1'] = 6; arr.ex2 = 7; 为什么??还建议利用这种行为吗?因为数组只是对象,对象可以具有任意属性。您可以对任何其他对象执行相同的操作,例如函数或正则表达式 请注意,ex2不被视为“数组索引”。只有名称介于0和232-2之间的属性才会被视为数组元素 利用这种行为是否明智 不,视情况而定。我认为这会使代码更难理解,意图也不那么清晰,而且会让不太熟悉JS的人感到困惑 当然,这种灵活性也是一个非常强大的
var arr = [1, 2, 3, 4, 5];
arr['ex1'] = 6;
arr.ex2 = 7;
为什么??还建议利用这种行为吗?因为数组只是对象,对象可以具有任意属性。您可以对任何其他对象执行相同的操作,例如函数或正则表达式 请注意,
ex2
不被视为“数组索引”。只有名称介于0和232-2之间的属性才会被视为数组元素
利用这种行为是否明智
不,视情况而定。我认为这会使代码更难理解,意图也不那么清晰,而且会让不太熟悉JS的人感到困惑
当然,这种灵活性也是一个非常强大的功能。你应该负责任地使用它,并且只有在没有其他选择的情况下才可能使用它
但是,我还没有看到向数组添加额外属性特别有用的情况。还请注意,
arr[0]
与arr[“0”]
相同,您也可以为对象使用整数索引;obj[0]=1代码>有趣的事实。数组的索引器与对象相同。arr[0]首先将0强制转换为字符串或arr[“0”]是的,这更准确length
可以是max2^32-1
,这使得2^32-2
的索引最高。(更新;)