如何列印 JavaScript 物件的內容?
通常,如果我們只是使用 alert(object);,它會顯示為 [object Object]。 如何在 JavaScript 中列印一個物件的所有內容參數?
答案#1
這將使用 JSON.stringify 為你產生帶縮排的 JSON 物件,並得到非常好的輸出:
alert(JSON.stringify(YOUR_OBJECT_HERE, null, 4));
第二個參數(replacer)會在返回字串之前改變其內容。
第三個參數(space)指定用多少個空格作為空白以增進可讀性。
這裡是 JSON.stringify 的文件。
答案#2
如果你使用的是 Firefox,alert(object.toSource()) 應該足以應付簡單的除錯需求。
答案#3
除了使用除錯器之外,你也可以使用 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)也都有內建的除錯工具,你應該查看這些工具。
答案#4
如果你只是想要一個物件的字串表示形式,你可以使用 JSON.stringify 函數,使用 JSON 函式庫。
答案#5
你可以使用 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
答案#6
你可以使用列印物件的內容
console.log(obj_str);
你可以在控制台看到如下結果。
Object {description: "test"}
在 Chrome 瀏覽器中按 F12 打開控制台,你會在調試模式中找到控制台標籤。
