找出什麼是類型數組以及如何使用它們
JavaScript Provides 8 類型數組類型:
Int8Array
8位帶符號整數的數組Int16Array
16位帶符號整數的數組Int32Array
32位有符號整數的數組Uint8Array
8位無符號整數數組Uint16Array
16位無符號整數的數組Uint32Array
32位無符號整數的數組Float32Array
32位浮點數的數組Float64Array
64位浮點數的數組
他們都是ArrayBufferView
實例。
類型化數組本質上是一個視圖ArrayBuffer
,其中每個項目的大小和類型均相同。
DataView
是ArrayBuffer的另一個視圖,但是在這種情況下,數組中的項目可以具有不同的大小和類型。
這是一個如何創建一個8位帶符號整數數組的示例:
const a = new Int8Array()
您可以預分配n個字節:
const bytes = 1024
const a = new Int8Array(bytes)
主要用途是允許查看ArrayBuffer,它本身是不透明的(我們無法檢查其內容)。
我們的操作方法如下:
//we got this `buffer` ArrayBuffer
const a = new Int8Array(buffer)
這些類型化的數組類似於數組,因此現在我們可以通過常用的數組訪問技術檢查緩衝區的內容,並且可以訪問許多方法和屬性,包括map()
,reduce()
等等。
類型數組的主要用例是與WebGL,網絡音頻或者畫布API。一些WebGL函數期望使用類型化數組,因為它們比常規JavaScript數組具有更高的性能。
要記住的一件事是類型數組不允許我們控制字節序:它使用平台的字節順序。總的來說,這很好,因為我們所說的主要用例是使用多媒體API之一在本地使用數組。而且,由於英特爾使用該約定,因此大多數消費類計算機都使用低端字節序。但是,如果在使用大字節序的系統上傳輸類型數組的數據,則數據可能編碼錯誤,因此無效。
如果您需要這種對字節序的控制,請使用資料檢視反而。
免費下載我的JavaScript初學者手冊
更多瀏覽器教程:
- HTML5提供了一些有用的技巧
- 我如何使基於CMS的網站脫機工作
- 漸進式Web應用程序完整指南
- 提取API
- 推送API指南
- 頻道消息傳遞API
- 服務人員教程
- 緩存API指南
- 通知API指南
- 深入IndexedDB
- Selectors API:querySelector和querySelectorAll
- 通過延遲和異步有效地加載JavaScript
- 文檔對像模型(DOM)
- Web存儲API:本地存儲和會話存儲
- 了解HTTP Cookies的工作原理
- 歷史API
- WebP圖像格式
- XMLHttpRequest(XHR)
- 深入的SVG教程
- 什麼是數據網址
- 學習網絡平台的路線圖
- CORS,跨域資源共享
- 網絡工作者
- requestAnimationFrame()指南
- 什麼是Doctype
- 使用DevTools控制台和控制台API
- 語音合成API
- 如何在純JavaScript中等待DOM ready事件
- 如何將類添加到DOM元素
- 如何遍歷來自querySelectorAll的DOM元素
- 如何從DOM元素中刪除類
- 如何檢查DOM元素是否具有類
- 如何更改DOM節點值
- 如何將click事件添加到從querySelectorAll返回的DOM元素列表中
- WebRTC,實時Web API
- 如何在JavaScript中獲取元素的滾動位置
- 如何替換DOM元素
- 如何只接受輸入文件字段中的圖像
- 為什麼要使用瀏覽器的預覽版?
- 斑點對象
- 文件對象
- FileReader對象
- FileList對象
- ArrayBuffer
- ArrayBufferView
- URL對象
- 類型數組
- DataView對象
- BroadcastChannel API
- Streams API
- FormData對象
- 導航器對象
- 如何使用地理位置API
- 如何使用getUserMedia()
- 如何使用拖放API
- 如何在網頁上滾動
- 在JavaScript中處理表單
- 鍵盤事件
- 鼠標事件
- 觸摸事件
- 如何從DOM元素中刪除所有子級
- 如何使用原始Javascript創建HTML屬性
- 如何檢查是否使用JavaScript選中了複選框?
- 如何使用JavaScript複製到剪貼板
- 如何使用JavaScript禁用按鈕
- 如何在瀏覽器中使頁面可編輯
- 如何使用URLSearchParams在JavaScript中獲取查詢字符串值
- 如何一次刪除頁面上的所有CSS
- 如何使用insertAdjacentHTML
- Safari,退出前警告
- 如何使用JavaScript將圖像添加到DOM
- 如何重設表格
- 如何使用Google字體