模板文字中的对象与外部

时间:2019-03-29 04:27:36

标签: javascript template-literals

我最近开始在代码中使用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::使用对象时,模板文字似乎无法正常工作。他们为什么要这样做,并且有办法解决?

1 个答案:

答案 0 :(得分:0)

您可以使用JSON.stringify()

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

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

当尝试使用+合并对象或将其插入string中时,它首先通过调用Object.prototype.toString()将对象转换为字符串。而且它不返回真实对象。返回的内容如下。

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