[英]Javascript associative arrays differ on variable declaration
当我将变量声明为数组或对象然后向其中添加元素时,我注意到了不同之处。
当我声明我的变量如下:
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我正在使用谷歌浏览器。
第一个是一个数组,第二个是一个对象,使用哪个取决于您的目标,如果您需要数组,该数组将比使用“数组”对象更有用和有效。
此外,可以像这样使用对象: myObject.a
虽然数组只能这样使用: myArray["a"]
另一个不同之处在于toString
方法。 对于数组,它返回Banana,Orange,Apple,Mango
(例如),对于一个对象,它返回[object Object]
(例如)。
进一步阅读: 数组和对象有什么区别?
检查是否是数组:
function isArray(obj) {
return Object.prototype.toString.call(obj) === "[object Array]";
}
它们是两个不同的对象。 我将第二个用于 JSON 响应,第一个用于代码中的正常使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.