簡體   English   中英

javascript警報功能不會顯示對象

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM