这段代码(JS)有什么区别?

时间:2011-05-01 10:02:27

标签: javascript firebug

我想知道这段代码之间的区别是什么:

var c = [{"test": 1}];

和此代码

var c = {"test": 1};

Firebug说它们都是对象,但如果你用第一个例子做console.log(c.test),它将返回“undefined”。所以我有点想知道这一切是什么以及如何访问第一个例子?

2 个答案:

答案 0 :(得分:8)

第一个是包含一个元素的数组,它是{"test": 1}个对象,而第二个是{"test": 1}个对象本身。

首先你可以c[0].test,第二个你可以c.test

答案 1 :(得分:1)

第一个c是包含Object的Array,第二个是Object。

在JavaScript中,一切都是一个对象,这就是为什么Firebug说它们都是对象的原因。要从第一个c获取test属性,您必须引用Array的第一个元素(作为实际的Object),因此c[0].test将返回1.如果您需要知道c是(实例)是数组,尝试在Firebug控制台中键入c instanceof Array并运行它(返回true)。要验证数组是否也是对象,请对c instanceof Object执行相同操作(返回true)。