我希望看到obj的值,使用以下代码
var obj = {
x: 'abc',
y: 2,
z: 3
};
当我使用alert(obj)时,它只给我[object Object]。 当我使用console.log(obj)时,它正确地在控制台中显示对象
为什么这个警报功能无法显示对象...... ???
是否有警报功能无法正确显示的数据类型
答案 0 :(得分:2)
alert(JSON.stringify(obj))
返回一个属性名称及其对象值的字符串。
答案 1 :(得分:1)
警报的消息参数:
message是要在警告对话框中显示的可选文本字符串,或者是转换为字符串并显示的对象。
https://developer.mozilla.org/en-US/docs/Web/API/Window.alert
由于它将所有内容转换为字符串,因此它意味着它使用返回object.toString()
的{{1}}方法。格式化输出的方法有很多种(请参阅@ kennebec的答案),但您也可以覆盖其[object Object]
方法。
这是一个简单的示例,将其覆盖为格式良好的字符串:
toString
答案 2 :(得分:-2)
使用
console.log(obj)
在现代浏览器中显示对象。如果您使用的是Chrome,请按Shift + Ctrl + J或F12,然后查看控制台。
警报只显示字符串或可以转换为字符串的变量(long,float,integer)。警报不能显示任何对象,包括数组,也不能显示纯JSON / XML或DOM元素。请注意向后兼容性,因为console.log()将破坏IE8(Windows XP)中的javascript。在调用console.log()命令之前,您可以执行其他javascript测试来测试IE8兼容性。