Javascript中的名称索引-数组/对象
Name Indexes in Javascript - Array / Object?
我知道当在Javascript中使用索引名称来推送值时,它们本质上就像对象一样工作。但我不明白的是以下行为-
person = [];
person[0] = "Someone";
person["test"] = "SomeoneElse"
在控制台上输入person
会打印["Someone"]
,我看不到关于person.test
的信息。person.test
确实打印SomeoneElse
。但是,如果我使用console.log(person)
,我会得到["Someone", test: "SomeoneElse"]
。出于好奇,我试着创建一个像这样的结构——
var experiment = ["Someone1", test1: "SomeoneElse1"]
我得到的是
Uncaught SyntaxError: Unexpected token
我错过了什么?
提前感谢!
在控制台上键入
person
将打印["Someone"]
。
Array.prototype.toString
格式化此输出,并且它只考虑自身的"数组值",而不考虑其他属性。
然而,如果我去
console.log(person)
,我会得到["Someone", test: "SomeoneElse"]
。
console.log
输出关于对象的其他信息,包括自己的属性。
未捕获的SyntaxError:意外的令牌
因为这是伪造的语法;数组文字语法不允许使用键,因为数组值不应该有键。数组是一个数值索引的值列表。仅仅是因为这些列表是使用对象实现的(因为Javascript中的所有东西都是某种对象),你就可以在数组上设置"非数字键"。但这并不意味着您正确地使用了数组。
另请参阅JavaScript数组元素只不过是数组对象属性吗?
这是因为JavaScript中的数组本身也是一个对象,对象可以具有属性。因此,拥有一个包含元素的数组是完全有效的,但也要在数组对象上设置属性。
第二个示例不起作用,因为[...,...,...]
语法专门用于实例化数组及其元素。
在控制台中键入person就像有一个alert(person);
或将其值传递给变量或元素,所以更像是想要获得第一组可读值。这就是为什么它会向您显示里面的值,您可以尝试添加person[1] = *something;*
,然后它会显示某人,某物
console.log(person)-它显示对象内的所有项。它更像是通知你里面有什么,就像IDE 中的文本可视化工具
var experiment = ["Someone1", test1: "SomeoneElse1"]
-它绝对会抛出一个异常——在初始化值时没有这样的格式,至少它期望的是类似var experience=["Someone1", "SomeoneElse1"]
的数组格式
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象