模板文字中的对象与外部

Object in Template Literals vs. Outside

我最近开始在我的代码中使用 Template Literals,据我所知,

"Text: " + variable

完全相同
`Text: ${variable}`

(在这种情况下,我希望 variable`${variable}` 相同)

它似乎适用于所有 对象。例如,下面的代码片段输出正确的对象。

var obj = {"text": "more text"};

console.log(obj);

而此代码段仅输出 [object Object]。为什么这样做?

var obj = {"text": "more text"};

console.log(`${obj}`);

据我所知,解决这个问题的唯一方法是通过执行

具体 select 密钥
console.log(`${obj.text}`);

除了,如果我想看到整个对象,我该怎么做?

TL;DR: 使用对象时,模板字面值似乎无法正常工作。他们为什么这样做,是否有解决办法?

您可以使用JSON.stringify()

const obj = {a:1,b:2}

console.log(`${JSON.stringify(obj)}`)

当尝试使用 + 连接对象或在 string 中插入对象时,它首先通过调用 Object.prototype.toString() 将对象转换为字符串。它不是 return 真实的 object.What 它 return 在下面。

console.log({a:1,b:2}.toString())