首页 > 解决方案 > 模板文字中的对象与外部

问题描述

我最近开始在我的代码中使用模板文字,据我了解,

"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:在使用对象时,模板文字似乎并没有按应有的方式工作。他们为什么这样做,有没有办法解决它?

标签: javascripttemplate-literals

解决方案


您可以使用JSON.stringify()

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

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

当一个对象试图通过使用+或插值来连接时,string它首先通过调用将对象转换为字符串Object.prototype.toString()。它不返回真实对象。它返回的内容如下。

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


推荐阅读