const obj = {
name: "John"
}
const objStringify = `{"name": ${obj.name}}`
console.log(objStringify)
我期待
{"name": "John"}
,但我得到了{“name”:John},有人可以解释一下这里发生了什么,因为obj.name的值是字符串类型,我期待带引号的字符串,类似于JSON.stringify
表现良好。
我知道我可以引用它,但我想要原因。
正如您所看到的,对于 name 也只添加双引号,当您访问 obj.name 的值时,它将返回 John,它是一个字符串,但它不会添加这些双引号。如果你想明确添加,那么你可以这样做:
const obj = {
name: "John"
}
const objStringify = `{"name": "${obj.name}"}`
console.log(objStringify)
然后它就会给出你想要的输出。 主要原因是JS在打印obj值时不会添加额外的双引号。