【发布时间】:2014-05-14 17:27:52
【问题描述】:
在 Firefox、Safari 和 Chrome 中使用 Javascript(没有尝试过 IE),出现以下奇怪行为:
data = new Array(1,3,5,7,9);
data[1,7,3] = 88;
alert( data ); // displays: 1,3,5,88,9
显然索引 [3] 处的值已更改(其他测试表明它实际上已更改数据 [3])。
第二个命令不会产生错误。它甚至不会在 NetBeans 中生成警告,在浏览器中显示时也不会生成错误。
我对此进行了更深入的探索。看来:
data[1,7,null,NaN,4,3]
也被解释为数据[3] -
这也适用于 3 以外的其他值。
使用列表中的最后一个值,其余的被忽略。
这种行为是否有某种意义或目的,还是只是解析器中的意外错误?
我无法找到有关此行为/语法的任何文档或解释。
【问题讨论】:
-
那么您的目标是什么? -> 数据[1,7,3] = 88;
标签: javascript arrays indexing