通常如果我们只使用alert(object);它将显示为[object object]。如何在JavaScript中打印对象的所有内容参数?


当前回答

如果您使用的是Firefox, alert(object.toSource())应该足以满足简单的调试目的。

其他回答

使用JSON.stringify,这将为您提供一个缩进的JSON对象的非常好的输出:

alert(JSON.stringify(YOUR_OBJECT_HERE, null, 4));

第二个参数(replacer)在返回字符串之前改变字符串的内容。

第三个参数(space)指定使用多少个空格作为可读性空白。

JSON。在这里Stringify文档。

我也遇到过类似的问题,原因是我使用ajax来获取数据。 在这种情况下,我已经做了两个异步ajax调用。在一个我只是返回字符串msg和显示在警报。在第二ajax调用我获取数组列表在json格式和解码它在js。 所以我的第二个请求使用处理第一和我得到对象的警报。

检查一下。 1. 警报应该包含字符串。 2. 如果你得到数组列表或任何其他对象解码它。

祝你一切顺利!

ie8有开发工具,类似于Firefox的Firebug。Opera有Opera DragonFly,谷歌Chrome也有开发人员工具(Shift+Ctrl+J)。

下面是在IE6-8中调试JavaScript的更详细的答案: 使用IE8“开发人员工具”调试早期IE版本

除了使用调试器,还可以使用foreach循环访问对象的所有元素。下面的printObject函数应该alert()您的对象,显示所有属性和各自的值。

function printObject(o) {
  var out = '';
  for (var p in o) {
    out += p + ': ' + o[p] + '\n';
  }
  alert(out);
}

// now test it:
var myObject = {'something': 1, 'other thing': 2};
printObject(myObject);

使用DOM检查工具更可取,因为它允许您挖掘对象本身的属性。Firefox有FireBug,但所有其他主要浏览器(IE、Chrome、Safari)也有内置的调试工具,你应该检查一下。

如果你只是想要一个对象的字符串表示,你可以使用JSON。stringify函数,使用JSON库。