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

What's the difference in this code (JS)?

本文关键字:区别 是什么 JS 代码 段代码      更新时间:2023-09-26

我想知道这段代码有什么不同:

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

和这个代码

var c = {"test": 1};

Firebug说它们都是对象,但是如果你对第一个例子执行console.log(c.test),它会返回"undefined"。我想知道这是怎么回事第一个例子应该怎么访问?

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

第一个可以是c[0].test,第二个可以是c.test

第一个c是包含对象的数组,第二个c是对象。

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