2012-10-12 32 views
1

我有兩個應用下面代碼的小提琴,唯一的區別是使用console.log而另一個使用alert來顯示變量myString的值。一個小提示提醒字符串「富」,而其他日誌foo喜歡這個foo {0="f", 1="o", 2="o"}什麼說明了這種差異?JavaScript:'foo'or foo {0 =「f」,1 =「o」,2 =「o」}`

var myString = new String('foo'); // produces a String() object 

    alert(myString);​ 

http://jsfiddle.net/mjmitche/UdYXZ/

http://jsfiddle.net/javascriptenlightenment/XcfC5/

+0

重複的http://stackoverflow.com/questions/3909006/alert-return-different-from-console-log – Colleen

+0

@colleen解釋是一樣的 - 什麼說明了差異 - 但問題是「 t完全一樣 – BrainLikeADullPencil

回答

4

console.log輸出變量的實際內容,在本例中爲變量的屬性。

alert另一方面將所有東西都轉換爲原始字符串。

0

從控制檯對象的firebug documentation

如果對象登錄,他們將被寫入不是靜態文本,但作爲 互動超級鏈接,可點擊檢查對象 Firebug的HTML,CSS,腳本或DO M標籤。您也可以使用%o 模式來替換字符串中的超鏈接。

+1

我不確定這是否解決了OP的問題。看起來好像他們在問爲什麼'console.log'會將String對象輸出爲字符數組,而不是String「primitive」。 – Palpatim

0

alert()使用對象的toString()方法將傳遞給它的對象轉換爲字符串。與alert()不同,console.log()並不限於顯示一個簡單的字符串,並且可以允許您與傳遞給它的對象進行交互,例如讓您檢查其屬性。

相關問題