为什么console.log()在JavaScript中输出[object]?
为什么console.log()在JavaScript中输出[object]?,javascript,Javascript,console.log(({ 标题:“三个火枪手”, 作者:“亚历山大大仲马”, 价格:$49 }).toString()),因为for已经构建了一个JavaScript对象,您正试图将其转换为字符串。您正试图将整个对象转换为字符串,但这(实际上)无法完成。因此,您只需得到一条文字,上面写着“嘿,我们这里有一个对象” 但是,如果对该对象的属性运行.toString()(这可能是您的意图),您将获得该属性的字符串表示形式。这可以通过在调用.toString()之前使用点符号访问proeprty来完
console.log(({
标题:“三个火枪手”,
作者:“亚历山大大仲马”,
价格:$49
}).toString())代码>,因为for已经构建了一个JavaScript对象,您正试图将其转换为字符串。您正试图将整个对象转换为字符串,但这(实际上)无法完成。因此,您只需得到一条文字,上面写着“嘿,我们这里有一个对象”
但是,如果对该对象的属性运行.toString()
(这可能是您的意图),您将获得该属性的字符串表示形式。这可以通过在调用.toString()
之前使用点符号访问proeprty来完成,如下所示:
console.log(({
标题:“三个火枪手”,
作者:“亚历山大大仲马”,
价格:$49
}).title.toString())代码>如果要查找对象的JSON字符串表示形式,请查看当您尝试将对象转换或添加到字符串(也尝试将其转换为字符串)时会发生的情况,您要查找的是JSON.stringify(object)
:
console.log(
JSON.stringify(
{标题:“三个火枪手”,作者:“亚历山大大仲马”,价格:“$49”}
)
);代码>如果这样做,效果会更好
let object = {
title: "The Three Musketeers",
author: "Alexandre Dumas",
price: "$49"
}
console.log("My object",object);
这是因为它不知道如何呈现对象您正在寻找的方法是JSON.stringify()。试试这个:
JSON.stringify({
title: "The Three Musketeers",
author: "Alexandre Dumas",
price: "$49"
}, null, 2);
您希望它打印什么?为什么会这样?您的对象没有自己的toString
,因此它使用来自对象的内容。因为这就是它应该返回的内容。你期待什么?