javascript - javascript 中带有 {} 的列表叫什么?

标签 javascript list

var my = {};

my["1"] = "tom";

my["2"] = "tony";

document.writeln(my["2"]);

一个简单的问题,{} 叫什么?我知道 [] 称为 arraylist,我可以对其执行 my.indexOf() 等操作,但这不适用于 {}。

我在哪里可以找到我可以使用 list with {}

执行的操作列表

最佳答案

{} 被称为一个对象,在您的声明中:

var my = {};

您只是在创建一个空对象,然后您可以向其添加属性。

数组和对象都可以使用[x] 语法访问。数组最适合用于数字索引的顺序访问,如:

x[1]
x[2]

对象最适合用于非顺序字符串索引的访问,例如:

my["autoSaveTime"]
my.autoSaveTime

有些人还将对象视为哈希表或关联数组,因为它们通常可以提供与其他编程结构类似的目的。

根据您在评论中提出的问题,数组具有 .length 等属性以及 .push().pop() 等方法>。对象没有。 MDN 是一个很好的引用信息来源。这是 MDN page on array methods这是一个good overview on working with objects .

对象没有这些方法。由于对象没有顺序,您只需分配给它们或读取它们或迭代它们或删除属性,因为不需要像数组那样尝试更改它们的顺序。

var x = my.autoSaveTime;
my.autoSaveTime = 200;
for (var key in my) {
    var item = my[key];
    // do something with item or key here
}

理解一个棘手的事情是,数组实际上是从对象派生的,并添加了额外的数组功能。也就是说,数组还可以像对象一样包含任意字符串命名的属性,并且具有对象所具有的所有通用方法。对象没有数组功能和方法。因此,数组是对象的超集。

关于javascript - javascript 中带有 {} 的列表叫什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10177633/

相关文章:

javascript - 理解下划线对 isNaN 的实现

javascript - 为什么 charAt 检测不到字符串?

python - 如何最好地处理列表或数据框中的日期时间?

python - 如何在python中不使用[]将列表写入文件

javascript - 带有 jQ​​uery 表单向导的 Ckeditor

asp.net - 从 Asp.Net 的代码隐藏控制 Lightbox(模态)

javascript - Bootstrap Navbar Active State Switching Bootstrap (Javascript相关)

python - 如何查找包含特定元素的嵌套列表最后一次出现的索引?

list - 如何获得列表大小 em VB .NET?

java - 不使用集合从 java 列表中删除重复项