javascript - 模板文字中的对象与外部
问题描述
我最近开始在我的代码中使用模板文字,据我了解,
"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())
推荐阅读
- django - 从与 django 集成的 scrapy 中保存图像
- oracle - “ORA-00917: 缺少逗号” & vbLf
- excel - 如何从记事本中的文本文件中删除换行符和数字
- javascript - 用方括号替换字符串
- android - 我使用 msfvenom 创建了有效负载,但生成了以下错误
- java - 应用程序因空指针异常而崩溃,需要 ACCESS FINE LOCATION PERMISSION
- node.js - 无法使用 Loopback API 进行搜索
- ios - 如何在iOS12设备上查看之前是否下载过该应用
- javascript - Jquery函数返回值但不传递给MVC中的控制器
- node.js - Sequelize - 更新有触发器的表 - 不工作