回答
的區別是:
Object.prototype.toString.call([]); // [object Array]
Object.prototype.toString.call({}); // [object Object]
編輯:
而且,看看從ECMAScript的規範這部分,因爲它恰恰說明了一個數組是什麼:http://bclary.com/2004/11/07/#a-15.4
你錯了;數組可以有你想要的任何鍵。
另外,它們繼承了Array
原型。
JavaScript Array也繼承Object,所以它將獲得對象的所有功能。 JavaScript數組有,雖然附加功能:
var myA = ['foo', 'bar', 'baz'];
var myO = {0: 'foo', 1: 'bar', 2: 'baz'};
// these both give us "foo":
console.log(myA[0]);
console.log(myO[0]);
// array has additional methods, though:
console.log(myA.pop());
console.log(myO.pop()); // <- error
雖然可以增加整數性能定期對象,並添加非整數屬性數組,這不會給對象的特殊屬性和方法數組和數組的特殊功能僅適用於其整數鍵屬性。
對數組繼承的所有額外屬性的一個很好的參考是Mozilla Developer Center article on Array。如果你想保持跨瀏覽器的兼容性,請確保你注意一點「非標準」和「需要JavaScript 1.x」的注意事項。
myO.pop = function(){return「ne ne ne ne,我也可以彈出!」 }; - 在這裏你去,一個對象(不是數組),完美的工作.pop()。你的代碼不能證明任何東西。 – rochal 2010-07-30 13:02:28
Array對象可以擁有對象可以擁有的任何屬性。 唯一的特殊屬性是當您設置「數組索引」屬性時(可能)更新的「length」屬性,並且如果設置爲比當前值更小的值,也可以用於刪除數組元素。
「數組索引」是字符串(所有對象屬性都是),它是範圍爲0..2^32-2(即「0」到「4294967294」)範圍內的無符號整數的標準十進制表示形式。 該限制低於32位無符號值的最大值,因爲長度字段值始終是無符號的32位整數值。
數組對象也從Array.prototype繼承(但如果需要,也可以使其他對象也這樣做),並且它們的內部類是「Array」。
即,在實踐中,數組和普通對象實例之間的唯一區別是「魔法長度屬性」。如果你不需要這些,你應該只使用一個對象。
myObject.length = function(){return 12}; - 很酷,我現在是一個陣列。再次 - 你的文章沒有證明任何內容,你說的只是錯誤的。 – rochal 2010-07-30 13:14:53
- 1. 在對象的屬性和數組之間迭代有什麼區別Javascript
- 2. 屬性和屬性有什麼區別?
- 3. 「hello」.length和「hello」.length是什麼區別?
- 4. OpenCL函數length()和fast_length()之間有什麼區別?
- 5. javascript原型上的屬性與對象有什麼區別?
- 6. 數組與對象有什麼區別?
- 7. JSON和JavaScript對象之間有什麼區別?
- 8. 窗口對象的全局變量和屬性之間有什麼區別?
- 9. 在ICU UnicodeString中countChar32()和length()之間有什麼區別?
- 10. _EPROCESS對象和_KPROCESS對象之間有什麼區別
- 11. 2個JavaScript對象有什麼區別?
- 12. Javascript對象構造:有什麼區別?
- 13. 角色,隸屬關係和屬性之間有什麼區別?
- 14. Javascript對象,屬性和變量有什麼區別,他們都一樣嗎?
- 15. notable_for和notable_types屬性有什麼區別?
- 16. 「wairole」和「role」屬性有什麼區別?
- 17. javascript屬性和javascript變量有什麼區別?
- 18. jQuery數組和jQuery對象有什麼技術區別?
- 19. 對象和引用有什麼區別?
- 20. 對象和實例有什麼區別?
- 21. 對象和變量有什麼區別?
- 22. @JsonIgnore屬性和沒有註解的屬性之間有什麼區別?
- 23. 使用。或[]來訪問對象屬性 - 有什麼區別?
- 24. 活躍度和進度屬性之間有什麼區別?
- 25. ARC:成員變量和屬性之間有什麼區別?
- 26. src和data-src屬性之間有什麼區別?
- 27. 實體,實體集和屬性之間有什麼區別?
- 28. 原始數組和引用數組之間有什麼區別?
- 29. 對象和字符串對象之間的區別是什麼
- 30. 角度組件:單向和屬性綁定有什麼區別?
你是指'[]'和'{}'之間的區別嗎? – 2010-07-30 12:22:38
沒有。不是關於語法。我在談論行爲和實施。 – Eonil 2010-07-30 12:47:05