模板文字中的对象与外部
Object in Template Literals vs. Outside
我最近开始在我的代码中使用 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}`);
据我所知,解决这个问题的唯一方法是通过执行
具体 select 密钥
console.log(`${obj.text}`);
除了,如果我想看到整个对象,我该怎么做?
TL;DR: 使用对象时,模板字面值似乎无法正常工作。他们为什么这样做,是否有解决办法?
您可以使用JSON.stringify()
const obj = {a:1,b:2}
console.log(`${JSON.stringify(obj)}`)
当尝试使用 +
连接对象或在 string
中插入对象时,它首先通过调用 Object.prototype.toString()
将对象转换为字符串。它不是 return 真实的 object.What 它 return 在下面。
console.log({a:1,b:2}.toString())
我最近开始在我的代码中使用 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}`);
据我所知,解决这个问题的唯一方法是通过执行
具体 select 密钥console.log(`${obj.text}`);
除了,如果我想看到整个对象,我该怎么做?
TL;DR: 使用对象时,模板字面值似乎无法正常工作。他们为什么这样做,是否有解决办法?
您可以使用JSON.stringify()
const obj = {a:1,b:2}
console.log(`${JSON.stringify(obj)}`)
当尝试使用 +
连接对象或在 string
中插入对象时,它首先通过调用 Object.prototype.toString()
将对象转换为字符串。它不是 return 真实的 object.What 它 return 在下面。
console.log({a:1,b:2}.toString())