在字符串内连接字符串值以模拟 JSON stringify

问题描述 投票:0回答:1
const obj = {
  name: "John"
}

const objStringify = `{"name": ${obj.name}}`

console.log(objStringify)

我期待

{"name": "John"}
,但我得到了{“name”:John},有人可以解释一下这里发生了什么,因为obj.name的值是字符串类型,我期待带引号的字符串,类似于
JSON.stringify
表现良好。

我知道我可以引用它,但我想要原因。

javascript stringify
1个回答
-1
投票

正如您所看到的,对于 name 也只添加双引号,当您访问 obj.name 的值时,它将返回 John,它是一个字符串,但它不会添加这些双引号。如果你想明确添加,那么你可以这样做:

const obj = {
  name: "John"
}

const objStringify = `{"name": "${obj.name}"}`

console.log(objStringify)

然后它就会给出你想要的输出。 主要原因是JS在打印obj值时不会添加额外的双引号。

© www.soinside.com 2019 - 2024. All rights reserved.