javascript警报功能不会显示对象

时间:2014-12-09 17:33:59

标签: javascript oop

我希望看到obj的值,使用以下代码

var obj = { 
            x: 'abc',
            y: 2,
            z: 3 
                   };

当我使用alert(obj)时,它只给我[object Object]。 当我使用console.log(obj)时,它正确地在控制台中显示对象

为什么这个警报功能无法显示对象...... ???

是否有警报功能无法正确显示的数据类型

3 个答案:

答案 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兼容性。

相关问题