gpt4 book ai didi

javascript - 包含自定义键作为对象的 JSON 对象是否有效?

转载 作者:行者123 更新时间:2023-11-28 16:42:10 26 4
gpt4 key购买 nike

据我所知,javascript 允许对象内的键值使用任何类型,例如:

{
key1: "string",
key2: ["list"],
key3: 123,
key4: { name: "string embedded in an object in another object"}
}

但它只允许某些特定类型的键,例如字符串和整数:{ “字符串”:“字符串”, 123:“整数”}

当我编写下面的代码时,我遇到了这个问题, key 最终是:[object Object]

let a = {}
let b = {}

b.name = {name: "name"}

a[b.name] = "value"

console.log(JSON.stringify(a))

上面的结果:

{"[object Object]":"value"}

那么js中对象的键允许什么类型?为什么它显示的键为[object Object]?

最佳答案

您正在混合两个不同的概念。 JSON 和 JavaScript 对象虽然相似,但并不相同。您可以阅读 the difference between JSON and the Object Literal Notation .

And why does it show the key as [object Object]?

因为键只能是字符串或符号。任何其他值都被强制转换为字符串(例如,通过调用该值的 toString 方法(如果可用))。 ({}).toString() 返回“[object Object]”`。

如果你想使用对象作为键,你可以使用Map .

关于javascript - 包含自定义键作为对象的 JSON 对象是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61014402/

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