2014-02-25 32 views
0

我知道,一切都在JavaScript對象,但是當我使用Internet Explorer -F12的控制檯的東西打動我(是IE,不允許使用其他瀏覽器)JavaScript是否將數組轉換爲對象內部?

如果我鍵入一個樣品陣列控制檯:

[1,2] 

輸出

1,2{ 
    0:1, 
    1:2 
    } 

這是否意味着JavaScript的轉換陣列與鍵和值的對象?

+1

數組的對象,所以是或否,取決於你如何看待它。 – dandavis

+0

這真的是你得到的輸出嗎?它甚至沒有任何意義 –

+0

顯示的輸出僅僅是一個圖形調試控制檯的可視化...如果有疑問,你可以記錄JSON.stringify(arr)... – dandavis

回答

3

是的,JS中的數組只是帶數字鍵的對象。你可以做相反的事情:

var myarray = { 0: 'first', 1: 'second', 2: 'third' }; 
console.log(myarray[1]); 
+1

由於某些原因,「數組」的長度屬性是錯誤的,並且[] .join也不起作用。 。也許它不是那麼簡單? – dandavis

+0

那麼,數組是一個特殊的對象,所以我的例子不會繼承Array.prototype。所以我想在這個意義上說它不是完全一樣的東西。但是OP在詢問數據本身是否以相同的方式存儲。 –

+0

如果問題是「數據本身以相同的方式存儲」,答案仍然是否定的。例如V8會將OP的代碼存儲爲一個intArray,但對象「等價」完全使用不同的數據結構。 – dandavis

相關問題