ES6知識點整理之----ArrayBuffer

這個接口的原始設計目的,與 WebGL 項目有關。所謂 WebGL,就是指瀏覽器與顯卡之間的通訊接口,爲了知足 JavaScript 與顯卡之間大量的、實時的數據交換,它們之間的數據通訊必須是二進制的,而不能是傳統的文本格式。文本格式傳遞一個 32 位整數,兩端的 JavaScript 腳本與顯卡都要進行格式轉化,將很是耗時。這時要是存在一種機制,能夠像 C 語言那樣,直接操做字節,將 4 個字節的 32 位整數,以二進制形式原封不動地送入顯卡,腳本的性能就會大幅提高。數組

二進制數組就是在這種背景下誕生的。它很像 C 語言的數組,容許開發者以數組下標的形式,直接操做內存,大大加強了 JavaScript 處理二進制數據的能力,使得開發者有可能經過 JavaScript 與操做系統的原生接口進行二進制通訊。瀏覽器

 

二進制數組由三類對象組成:性能

(1)ArrayBuffer對象:表明內存之中的一段二進制數據,能夠經過「視圖」進行操做。「視圖」部署了數組接口,這意味着,能夠用數組的方法操做內存。操作系統

(2)TypedArray視圖:共包括 9 種類型的視圖,好比Uint8Array(無符號 8 位整數)數組視圖, Int16Array(16 位整數)數組視圖, Float32Array(32 位浮點數)數組視圖等等。設計

(3)DataView視圖:能夠自定義複合格式的視圖,好比第一個字節是 Uint8(無符號 8 位整數)、第2、三個字節是 Int16(16 位整數)、第四個字節開始是 Float32(32 位浮點數)等等,此外還能夠自定義字節序。code

 

簡單說,ArrayBuffer對象表明原始的二進制數據,TypedArray 視圖用來讀寫簡單類型的二進制數據,DataView視圖用來讀寫複雜類型的二進制數據。對象

(暫略)接口

相關文章
相關標籤/搜索