初學ES6筆記十 二進位制陣列

2021-09-16 12:51:38 字數 2223 閱讀 1840

二進位制陣列由3類物件組成:

1.**arraybuffer物件:**代表記憶體中的一段二進位制資料,可以通過「檢視」進行操作。「檢視」部署了陣列介面,這意味著,可以用陣列的方法操作記憶體。

2.**typedarray檢視:**共包括9種型別的檢視,比如uint8array(無符號8位整數)陣列檢視、int16array(16位整數)陣列檢視、float32array(32位浮點數)陣列檢視等。

3.**dateview檢視:**可以自定義復合格式的檢視,比如第乙個位元組是unit8(無符號8位整數)、第二個和第三個位元組是init16(16位整數)等,此外還可以自定義節序。

arraybuffer物件

arraybuffer物件代表儲存二進位制資料的一段記憶體,他不能直接讀/寫,只能通過檢視(typedarray檢視和dateview檢視)讀/寫,檢視的作用是以指定格式解讀二進位制資料。

typedarray檢視

arraybuffer物件作為記憶體區域可以存放多種型別的資料。同一段記憶體,不同資料有不同的解讀方式,這就叫作「檢視」。

arraybuffer有兩種檢視,一種是typedarray檢視,另一種是arraybuffer檢視。前者的陣列成員都是同乙個資料型別,後者的陣列可以是不同的資料型別

typedarray檢視共有9種型別,每一種檢視都是一宗建構函式。

int8array:8位有符號整數,長度為1個位元組。

uint8array:8位無符號整數,長度為1個位元組。

int16array:16位有符號整數,長度為2個位元組。

uint16array:16位無符號整數,長度為2個位元組。

int32array:32位有符號整數,長度為4個位元組。

uint32array:32位無符號整數,長度為4個位元組。

float32array:32位浮點數,長度為4個位元組。

.float64array:64位浮點數,長度為8個位元組。

typedarray陣列的差異:

//建立乙個指向b的int16檢視,開始於位元組2,長度為2

var v3-=new int16array(b,2,2)

檢視建構函式接受3個引數:

dateview檢視

dateview檢視提供更多操作選項,而且支援設定位元組序。在設計的目的上,arraybuffer物件的各種typedarray檢視用於向網絡卡、音效卡之類的本級裝置傳送資料,所以使用本機的位元組序即可;而dateview檢視用於處理網路裝置傳來的資料,所以大端位元組序或小端位元組可以自行設定。

dateview例項有以下屬性,含義與arraybuffer例項的同名方法相同,

dateview例項提供8個方法讀取記憶體:

dateview例項提供8個方法寫入記憶體:

set方法接受兩個引數:第乙個引數是位元組序號,表示從哪個位元組開始寫入;第二個引數為寫入的資料。對於那些寫入兩個或兩個以上位元組的方法,需要指定第三個引數,false或undefined表示使用大端位元組序號寫入true表示使用小端位元組好寫入。

//在第1個位元組,以大端位元組寫入序寫入值為25的32位整數

dv.setint32(0,25,false);

二進位制陣列的應用

ajax

允許伺服器上返回二進位制資料,這是分兩種情況:如果明確知道返回的二進位制資料型別,可以把返回型別(responsetype)設定為arreybuffer;如果不知道,就設定為blod.

canvas

網頁canvas元素輸出的二進位制畫素資料就是typearray陣列。

fetch api

fetch api取回的資料就是arraybuffer物件。

file api

如果知道乙個檔案的二進位制資料型別,也可以將這個檔案讀取為arraybuffer物件。

ES6學習筆記 二進位制陣列(應用)

說實話自從做了前端之後,還沒怎麼用過二進位制陣列,看了es6入門之後才知道原來二進位制陣列的用處還不少。1 ajax xmlhttprequest第一版responsetype屬性預設為text。xmlhttprequest第二版xhr2允許伺服器返回二進位制資料,這時分成兩種情況 首先看下面的例子...

培訓ES6筆記

1 剩餘操作符 let rest function a,rest rest 1,2,3,4,5 傳入引數 let print function a,b,c print 1,2,3 print 1,2,3 var m2 math.max 8,9,4,1 可以替代concat var arr1 1,3 ...

ES6筆記 物件

依據阮一峰教程摘取的自己可能用到的特性 屬性的簡潔表示法 function f x,y 等同於 function f x,y f 1,2 object方法簡寫 const o 等同於 const o object.assign 可列舉物件的合併 同名屬性的合併 淺拷貝const target con...