1

当我将变量声明为数组或对象然后向其中添加元素时,我注意到了不同之处。

当我如下声明我的变量时:

var my_array = [];
my_array["a"] = 'first';
my_array["b"] = 'second';
console.log(my_array);

我得到以下结果:

[a: "first", b: "second"] 

但是,当我执行以下操作时:

var my_array = {};
my_array["a"] = 'first';
my_array["b"] = 'second';
console.log(my_array);

这是我得到的结果:

Object {a: "first", b: "second"} 

这里到底发生了什么?!一种方式是标准的,另一种不是?!兼容性有什么缺点?!

提前致谢。

PS我正在使用谷歌浏览器。

4

2 回答 2

2

第一个是数组,第二个是对象,使用哪个对象取决于您的目标,如果您需要数组,则该数组将比使用“数组”对象更有用和更有效。

此外,可以像这样使用对象: myObject.a

虽然数组只能像这样使用:myArray["a"]

另一个不同之处在于toString方法。对于数组,它返回Banana,Orange,Apple,Mango(例如),对于一个对象,它返回[object Object](例如)。

进一步阅读:数组和对象有什么区别?

检查是否为数组:

function isArray(obj) {
    return Object.prototype.toString.call(obj) === "[object Array]";
}
于 2012-11-27T11:19:22.120 回答
0

它们是两个不同的对象。我将第二个用于 JSON 响应,第一个用于代码中的正常使用。

于 2012-11-27T11:20:12.367 回答