当前位置:  开发笔记 > 编程语言 > 正文

打印JavaScript对象的内容?

如何解决《打印JavaScript对象的内容?》经验,为你挑选了8个好方法。

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



1> Igor Jerosim..:

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

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

第二个参数在返回之前改变字符串的内容.第三个参数指定可用作空白的空格数.


+1用于跨平台支持.在ECMAScript第5版中标准化,支持Firefox 3.6,Chrome(ver?),Safari 4和IE8.仅供参考:4参数是每个缩进级别的空格数.它也可以是一个字符串,例如"\ t".如果要限制显示的内容,则null参数是过滤函数的占位符.请参阅:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/stringify
这对于具有循环引用链的对象不起作用 - Chrome给出错误:TypeError:将curcular结构转换为JSON
我第30次在Google上搜索这个答案.
我在Chrome中看到了同样的循环结构错误:`Uncaught TypeError:将循环结构转换为JSON`.我做错了什么,或者这是Chrome的特有情况?
在IE8 JS调试器中无穷无尽.
使用这个答案:) +1

2> Lukman..:

如果您使用的是Firefox,则alert(object.toSource())应该可以进行简单的调试.


在最近的浏览器中,您可以使用`console.dir(object)`将对象的内容转储到调试控制台(大多数浏览器上的F12).
是否有跨浏览器的方式做类似的事情?
我试图在console.log(object.toSource())中使用它; 不适合我..
IE9也支持(如果不是更早),但Chrome 17或Safari 5不支持.

3> Miguel Ventu..:

除了使用调试器之外,您还可以使用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)也都有内置的调试工具,你应该检查.


可能想在循环中添加if(o.hasOwnProperty(p))
这是一个好主意,但在调试时我宁愿看到它.也许更好的是:for(var p in o){if(!o.hasOwnProperty(p))out + ='(inherited)'; out + = p +':'+ o [p] +'\n'; }

4> CMS..:

如果您只想拥有对象的字符串表示,则可以使用该JSON.stringify函数,使用JSON库.



5> Nikunj K...:

打印您可以使用的对象的内容

console.log(obj_str);

你可以在控制台中看到如下结果.

Object {description: "test"} 

对于打开控制台,在Chrome浏览器中按F12键,您将在调试模式下找到控制台选项卡.



6> Michal..:

Node的util.inspect(object)可以打印出对象的结构.

当您的对象具有循环依赖性时,它尤其有用

$ node

var obj = {
   "name" : "John",
   "surname" : "Doe"
}
obj.self_ref = obj;

util = require("util");

var obj_str = util.inspect(obj);
console.log(obj_str);
// prints { name: 'John', surname: 'Doe', self_ref: [Circular] }

在那种情况下JSON.stringify抛出异常: TypeError: Converting circular structure to JSON



7> Jonathan Fei..:

您应该考虑使用FireBug进行JavaScript调试.它将让您以交互方式检查所有变量,甚至可以逐步执行功能.



8> OverLex..:

使用dir(对象).或者你总是可以下载Firebug for Firefox(真的很有帮助).

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有