关于js中关联数组的使用问题

两个例子
function test1() {
var array1 = { "A":"a","B":"b","C":"c" };
for (key in array1) { // 能够正常输出数组
alert('=1=1=====' + key);
alert('=1=2=====' + array1[key]);
}
}
function test2() {
var array2 = new Array();
array2["A"] = "a";
array2["B"] = "b";
array2["C"] = "c";
for (key in array2) { // 在输出正确数组前,会先输出许多函数信息
alert('==1=====' + key);
alert('==2=====' + array2[key]);
}
}
在test1中直接定义数组能够正常输出;而在test2中用Array 定义数组则会输出很多函数信息,这是为什么呢,两种数组定义的方式有什么区别呢?

javascript 里 {}不能称作数组,应该属于object类型。

而new Array 出来的是Array类型。虽然javascript 中任何类型都是object,但是Array 的实例中已经带有很多和array相关的实例方法。例如 indexOf\slice\。。。。

var array2 = new Array();

直接这样即可:

var array2 = {};或var array2 = new Object();