在javascript中,數組是一個特殊的對象,其property名為正數組,且其length屬性會隨着數組成員的增減而發生變化,同時又從arry構造函數中繼承一些用於進行數組操作的方法,而對於一個普通的對象來說,如果它的所有property名均為正整數,同事也有相應的length屬性,那么雖然該對象並不是由Array構造函數所創建的,它依然呈現出數組的行為,在這種情況下,這些對象被稱為"類數組對象"
如:
var o ={0:42,1:52,2:63,length:3}
console.log(0);
與普通對象不同的是,類數組對象擁有一個特性:可以在類數組對象上應用數組的操作方法。
JavaScript類型化數組是一種類似數組的對象,並提供了一種用於訪問原始二進制數據的機制。 正如你可能已經知道,Array
存儲的對象能動態增多和減少,並且可以存儲任何JavaScript值。JavaScript引擎會做一些內部優化,以便對數組的操作可以很快。然而,隨着Web應用程序變得越來越強大,尤其一些新增加的功能例如:音頻視頻編輯,訪問WebSockets的原始數據等,很明顯有些時候如果使用JavaScript代碼可以快速方便地通過類型化數組來操作原始的二進制數據將會非常有幫助。
但是,不要把類型化數組與正常數組混淆,因為在類型數組上調用 Array.isArray()
會返回false
。此外,並不是所有可用於正常數組的方法都能被類型化數組所支持(如 push 和 pop)。