javascript - 模板文字中的对象与外部

标签 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: 使用对象时,模板字面值似乎无法正常工作。他们为什么这样做,是否有解决办法?

最佳答案

您可以使用 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/

相关文章:

javascript - 视频暂停超过1分钟后重定向到新页面

javascript - jquery 将值放入输入框

javascript - 使用 JavaScript 模板文字输出 CSS 中背景属性的值

javascript - 我正在尝试使用模板文字在 html 中显示来自 javascript 的文本,但元素未定义,我该怎么办?

javascript - Webpack - 子模块未正确解析

javascript - css 数据属性选择器的正则表达式

javascript - ES6 中函数后面的模板文字(反引号)的用途是什么?

node.js - 如何将单个反斜杠放入 ES6 模板文字的输出中?

javascript - 在没有模板化表达式的情况下使用 ES6 模板文字语法有缺点吗?

等效于 C strncmp 的 JavaScript(比较字符串的长度)