单个变量中的 JavaScript 数组和对象
JavaScript array and object in single variable?
我最近遇到了一些代码,我对此有点困惑。下面是类似的代码,看看:
var x = [];
console.log(x); // prints [] (no surprise)
x[0] = "abc";
console.log(x); // prints ["abc"] (no surprise)
x["test"] = "testing"
console.log(x); // prints ["abc"]
console.log(x.test); // prints "testing"
所以在这种情况下..相同的变量,x
,既是数组又是对象。这怎么可能?如果它同时充当两者,那么console.log(x)
应该打印类似 ["abc",test:"testing"]
但该语法是错误的。
那么在这种情况下会发生什么?
所有数组都是对象,(不仅是它们,JavaScript 中的所有内容都是对象(除了原语))
console.log([] instanceof Object);
// true
只是它们是处理整数键的特殊对象。
因此,您可以期望它们像普通的JavaScript对象一样运行。您可以向它们添加任意属性。
关于console.log
结果,
[ 'abc', test: 'testing' ]
只是实现给出的表示形式。如果表示形式具有key : value
格式,则它是与该数组关联的普通属性。就这样。
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象