gpt4 book ai didi

javascript - Javascript 中的名称索引 - 数组/对象?

转载 作者:行者123 更新时间:2023-11-29 16:07:55 24 4
gpt4 key购买 nike

我理解当索引名称用于在 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

我错过了什么?

提前致谢!

最佳答案

Typing person on the console prints ["Someone"].

Array.prototype.toString 格式化这个输出,它只考虑自身的“数组值”而不考虑其他属性。

However, if I go console.log(person), I get ["Someone", test: "SomeoneElse"].

console.log 输出关于对象的其他信息,包括自己的属性。

Uncaught SyntaxError: Unexpected token

因为那是伪语法;数组文字语法不允许键,因为数组值不应该有键。数组是数值索引的值列表。仅仅是因为在幕后这些列表是使用对象实现的(因为 Javascript 中的所有内容都是某种对象),您就可以在数组上设置“非数字键”。但这并不意味着您正确使用了数组。

另见 Are JavaScript Array elements nothing more than Array object properties?

关于javascript - Javascript 中的名称索引 - 数组/对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36445326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com