克罗克福德写入在http://javascript.crockford.com/survey.html:
“有两种方法可以使一个新的数组:
变种myArray的= [];
变种myArray的新=阵列();”对象对象是否可以强制转换为数组对象?
所以我通过这两条线在一些AJAX代码我读困惑:
var obj={}; // obj is an Object object (i.e. a hash table)
obj[4] = 'x'; // now obj is suddenly an Array object via an integer key?
在JavaScript中的对象和数组实际上只是同样的事情,但在关键类型上有变体?
换句话说,这是否与在PHP中,我们可以使用要么一个名称(字符串)或一个整数的散列键?
我已经谷歌搜索这个答案,但似乎无法指出一篇文章,讨论这个问题。
想到一种可能性,可能是第一行是语法lint,因为第二行覆盖了obj的前一个定义,因为它会创建一个新的Array对象。
所以看来4强制转换成在这方面的字符串。谢谢Felix和agreco。 –
即使数组键也被转换为字符串,因为属性名称(键/ ...)始终是一个字符串。 –
这是我第一次成功的Q,我对这个快速而全面的回应感到惊讶。谢谢所有回答的人。 –