[英]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.