这段代码(JS)的区别是什么?
What's the difference in this code (JS)?
我想知道这段代码有什么不同:
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
)。
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 我的客户端选项是什么
- 这是什么“;要求“;事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- @@(“at at”)在ES6 JavaScript中是什么意思
- knex:根据结果创建数组的合适方法是什么
- emu -model、emu -restless和emu之间的主要区别(优缺点)是什么?
- function()在jQuery中是什么意思?这个和$(这个)有什么区别