我最近开始使用 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}`);
据我所知,解决这个问题的唯一方法是通过
console.log(`${obj.text}`);
除了,如果我想看到整个对象,我该怎么做呢?
TL;DR: 使用对象时,模板字面值似乎无法正常工作。他们为什么这样做,是否有解决办法?
最佳答案
您可以使用 JSON.stringify()
const obj = {a:1,b:2}
console.log(`${JSON.stringify(obj)}`)
当尝试使用 +
连接对象或在 string
中插入对象时,它首先通过调用 Object.prototype.toString( )
。并且它不返回真实对象。它返回的内容如下。
console.log({a:1,b:2}.toString())
关于javascript - 模板文字中的对象与外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55410504/