類型化數組是javascript操作(內存)二進制數據的一個接口。 類型化數組是建立在ArrayBuffer對象的基礎上的。它的作用是,分配一段可以存放數據的連續內存區域。 var buf = new ArrayBuffer(32); //生成一段32字節的內存區域,即變量buf在內存中占了32字節大小 ArrayBuffer對象的byteLength屬性,返回所分配的內存區域的字節長度。 buf.byteLength //32 如果要分配的內存區域很大,有可能分配失敗(因為沒有那么多的連續空余內存),所以有必要檢查是否分配成功。 if (buffer.byteLength === n) { // 成功 } else { // 失敗 } ArrayBuffer作為內存區域,可以存放多種類型的數據。不同數據有不同的存儲方式,這就叫做“視圖”。目前,JavaScript提供以下類型的視圖 Int8Array:8位有符號整數,長度1個字節。 Uint8Array:8位無符號整數,長度1個字節。 Int16Array:16位有符號整數,長度2個字節。 Uint16Array:16位無符號整數,長度2個字節。 Int32Array:32位有符號整數,長度4個字節。 Uint32Array:32位無符號整數,長度4個字節。 Float32Array:32位浮點數,長度4個字節。 Float64Array:64位浮點數,長度8個字節。 每一種視圖都有一個BYTES_PER_ELEMENT常數,表示這種數據類型占據的字節數 int8Array.BYTES_PER_ELEMENT // 1 Int16Array.BYTES_PER_ELEMENT // 2 生成視圖有兩種方法: 1,在ArrayBuffer對象上生成 // 創建一個8字節的ArrayBuffer var b = new ArrayBuffer(8); // 創建一個指向b的Int32視圖,開始於字節0,直到緩沖區的末尾 var v1 = new Int32Array(b); // 創建一個指向b的Uint8視圖,開始於字節2,直到緩沖區的末尾 var v2 = new Uint8Array(b, 2); // 創建一個指向b的Int16視圖,開始於字節2,長度為2 var v3 = new Int16Array(b, 2, 2); 2,直接生成 var v4 = new Int32Array(3); //創建一個數組長度為3的類型化數組 v4.length // 3; v4.byteLength //12 變量v4占12字節的內存大小 ;一個32位數字占4個字節,該數組共有3個元素所以是4*3等於12
原文出處:http://blog.csdn.net/lichwei1983/article/details/43893025
