Javascript 如何使用模板文本作为对象文本内的键?
如何使用模板文字作为对象文字内部的键? 以下代码:Javascript 如何使用模板文本作为对象文本内的键?,javascript,object-literal,template-literals,Javascript,Object Literal,Template Literals,如何使用模板文字作为对象文字内部的键? 以下代码: { `${id}_name`: "John Doe", `${id}_age`: 27, } 生成语法错误: Uncaught SyntaxError: Unexpected token : 是否有我遗漏的东西,或者这不受支持?如果没有,是否计划对此功能提供支持?当然,我会立即提出解决方案: { [`${id}_name`]: "John Doe", [`${id}_age`]: 27, } 将模板文字用方
{
`${id}_name`: "John Doe",
`${id}_age`: 27,
}
生成语法错误:
Uncaught SyntaxError: Unexpected token :
是否有我遗漏的东西,或者这不受支持?如果没有,是否计划对此功能提供支持?当然,我会立即提出解决方案:
{
[`${id}_name`]: "John Doe",
[`${id}_age`]: 27,
}
将模板文字用方括号括起来。这将计算方括号中的表达式,并将其用作键
如果没有方括号,只能使用标识符(例如
mykey\u name
)、单引号或双引号字符串(例如“mykey name”
)和数字(例如42
)。您的答案是正确的,但我将尝试回答原因
如果我们提到的是
属性使用键值标识。属性键值是ECMAScript字符串值或符号值。所有字符串和符号值(包括空字符串)都作为属性键有效。属性名称是作为字符串值的属性键
在这种情况下,a被定义为
字符串文字是用单引号或双引号括起来的零个或多个Unicode代码点。Unicode代码点也可以由转义序列表示。除结束引号代码点U+005C(反索利多金币)、U+000D(回车符)和U+000A(换行符)外,所有代码点都可以以字符串文字形式出现
这意味着字符串必须是用单引号或双引号括起来的unicode字符。对象键必须是ECMAScript字符串或符号,我假设它们是索引
模板文字是ECMAScript字符串,但ECMAScript字符串不是模板文字
顺便说一句,我不是ECMAScript专家,但这正是我能找到的。您可能需要
[]
?像这样的{[`id}\u name`]:“John Doe”}
这能回答你的问题吗@进化Xbox谢谢,我自己刚弄明白。为什么是落选,为什么是落选?这个问题可能对更多的读者非常有用。这个问题不是重复的,“类似问题”中的答案恰好也适用于这种情况。实际上,我认为对这个问题有更好的解释。