繁体   English   中英

javascript警报功能不会显示对象

[英]javascript alert function won't show objects

我想查看obj的值,使用以下代码

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

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

为什么此警报功能无法按原样显示对象... ???

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

   alert(JSON.stringify(obj))

返回属性名称及其对象值的字符串。

警报的消息参数:

message是要在警报对话框中显示的可选文本字符串,或者是转换为字符串并显示的对象。

https://developer.mozilla.org/en-US/docs/Web/API/Window.alert

由于它将所有内容都转换为字符串,这意味着它将使用object.toString()方法返回[object Object] 有很多格式化输出的方法(请参阅@kennebec的答案),但是您也可以覆盖其toString方法。

这是将其覆盖为格式正确的字符串的简单示例:

 var obj = { x: 'abc', y: 2, z: 3 }; Object.prototype.toString = function() { var output = ""; for (var i in this) { output += i + ": " + this[i] + "\\n"; } return output; } alert(obj); 

采用

console.log(obj)

在现代浏览器中显示对象。 如果您使用的是Chrome,请按Shift + Ctrl + J或F12,然后查看控制台。

警报仅显示字符串或可以转换为字符串(long,float,integer)的变量。 Alert无法显示任何对象,包括数组,也不能显示纯JSON / XML或DOM元素。 请注意向后兼容性,因为console.log()会破坏IE8(Windows XP)中的javascript。 在调用console.log()命令之前,还可以执行其他一些JavaScript测试来测试IE8兼容性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM