我有一个javascript对象,它已经被JSON解析使用JSON。我现在想打印对象,这样我就可以调试它(函数出了问题)。当我做以下事情时……
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
我得到了多个[object object]。我想知道我要如何打印这个才能查看内容?
我有一个javascript对象,它已经被JSON解析使用JSON。我现在想打印对象,这样我就可以调试它(函数出了问题)。当我做以下事情时……
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
我得到了多个[object object]。我想知道我要如何打印这个才能查看内容?
当前回答
很简单:
console.log("object: %O", obj)
其他回答
如果你想调试,为什么不使用控制台调试
window.console.debug(jsonObject);
如果你在服务器上用js工作,只要多做一点练习就可以了。这是我的ppos (pretty-print-on-server):
ppos = (object, space = 2) => JSON.stringify(object, null, space).split('\n').forEach(s => console.log(s));
当我在写服务器代码时,它创造了一些我可以真正阅读的东西。
我不知道它是如何被正式制作的,但我已经添加了我自己的json方法到控制台对象,以便更容易打印字符串化日志:
在javascript中观察对象(非原语)有点像量子力学,你“测量”的可能不是真实的状态,它已经改变了。
控制台。Json =控制台。Json ||函数(参数){ arg (var = 0;Arg < arguments.length;+ +参数) console.log (JSON。Stringify(参数[arg], null, 4)) } //使用实例 控制台。Json ([1,'a', null, {a:1}], {a:[1,2]})
很多时候需要查看对象的字符串化版本,因为按原样打印(原始对象)将打印对象的“活动”版本,该版本会随着程序的进展而发生变化,并且不会反映对象在记录时间点的状态,例如:
var foo = {a:1, b:[1,2,3]}
// lets peek under the hood
console.log(foo)
// program keeps doing things which affect the observed object
foo.a = 2
foo.b = null
大多数调试器控制台支持直接显示对象。只使用
console.log(obj);
根据调试器的不同,这很可能会在控制台中以折叠树的形式显示对象。您可以打开树并检查对象。
使用字符串格式;
console.log("%s %O", "My Object", obj);
Chrome有以下格式说明符;
%s将值格式化为字符串。 %d或%i将值格式化为 一个整数。 %f将值格式化为浮点值。 将值格式化为可展开的DOM元素(如 元素面板)。 %O将值格式化为可扩展的JavaScript 对象。 %c根据您的CSS样式格式化输出字符串 提供的。
Firefox也有字符串替换,有类似的选项。
输出到JavaScript对象的超链接。单击该链接将打开一个检查器。 %d或%i输出一个整数。尚不支持格式化。 %s输出一个字符串。 %f输出一个浮点值。尚不支持格式化。
Safari有printf样式的格式化程序
%d或%i整数 %[0。N]f精度为N位的浮点值 % o对象 % s字符串