为什么console.log()在JavaScript中输出[object Object]?

时间:2017-09-04 23:50:59

标签: javascript



console.log(({
  title: "The Three Musketeers",
  author: "Alexandre Dumas",
  price: "$49"
}).toString());




它将对象输出为[object Object],即使我在其上调用.toString()。任何人都可以解释为什么会这样吗?

5 个答案:

答案 0 :(得分:0)

因为已经构建了一个JavaScript对象,您试图将其转换为字符串。您正在尝试将整个对象转换为字符串,但不能(真的)完成。因此,您只需获得文字“嘿,我们这里有一个对象”。

但是,如果您要在该对象的属性上运行.toString()(这可能是您的意图),您将获得该属性的字符串表示形式。这可以通过在调用.toString()之前使用点符号访问proeprty来完成,如下所示:

console.log(({
  title: "The Three Musketeers",
  author: "Alexandre Dumas",
  price: "$49"
}).title.toString());

答案 1 :(得分:0)

如果您正在寻找对象的JSON字符串表示,请查看https://goplay.space/#leulqgwsjc

答案 2 :(得分:0)

当您尝试将对象转换或添加到字符串(也尝试将其转换为字符串)时会发生这种情况,您要查找的是JSON.stringify(object)

console.log(
    JSON.stringify(
        {title : "The Three Musketeers", author: "Alexandre Dumas", price: "$49"}
    )
);

答案 3 :(得分:0)

如果你这样做,它会更好用

let object = {
  title: "The Three Musketeers",
  author: "Alexandre Dumas",
  price: "$49"
}
console.log("My object",object);

这是因为它不知道如何渲染你的对象

答案 4 :(得分:0)

您正在寻找的方法是JSON.stringify()。试试这个:

JSON.stringify({
  title: "The Three Musketeers",
  author: "Alexandre Dumas",
  price: "$49"
}, null, 2);