【问题标题】:Object in Template Literals vs. Outside模板文字中的对象与外部
【发布时间】:2019-03-29 12:48:37
【问题描述】:

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

"Text: " + variable

完全一样
`Text: ${variable}`

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

它似乎适用于所有对象。比如下面的 sn-p 输出正确的对象。

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

console.log(obj);

而这个 sn-p 只输出[object Object]。为什么要这样做?

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

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

据我所知,解决这个问题的唯一方法是通过执行来专门选择密钥

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

如果我想查看整个对象,我该怎么做?

TL;DR: 使用对象时,模板文字似乎无法按应有的方式工作。他们为什么这样做,有没有办法解决它?

【问题讨论】:

    标签: javascript template-literals


    【解决方案1】:

    您可以使用JSON.stringify()

    const obj = {a:1,b:2}
    
    console.log(`${JSON.stringify(obj)}`)

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-10
      • 2015-03-21
      • 2013-02-15
      • 2014-04-18
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多