Crockford 在http://javascript.crockford.com/survey.html中写道:
“有两种方法可以创建一个新数组:
var myArray = [];
var myArray = new Array();”
所以我对我正在阅读的一些 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,因为第二行在创建新的 Array 对象时覆盖了 obj 的先前定义。