ArrayBuffer-以数组语法处理二进制数据
一 简介
ArrayBuffer对象、TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口,统称为二进制数组。
以数组的语法处理二进制数据。
1 作用
设计目的与 WebGL 有关。 WebGL是指浏览器与显卡之间的通信接口,为满足 js 与显卡之间大量的、实时的数据交换,数据通信必须是二进制的,而不是传统的文本格式,那将非常耗时。这时要存在一种机制,可以像 C 语言那样,直接操作字节,脚本的性能会大幅提升。
二进制数组就是这样的机制。它很像 C 语言的数组,允许开发者以数组下标的形式,直接操作内存,大大增强了js处理二进制数据的能力,使开发者可能通过 js 与操作系统原生接口进行二进制通信。
2. 二进制数组由三类对象组成。
(1)ArrayBuffer对象:代表内存之中的一段二进制数据,可通过“视图”(如:TypedArray和DataView)进行操作。“视图”部署了数组接口,可以用数组方法操作内存。
(2)TypedArray视图:共包括 9 种类型的视图,比如Uint8Array(无符号 8 位整数)数组视图, Int16Array(16 位整数)数组视图, Float32Array(32 位浮点数)数组视图等等。
(3)DataView视图:可以自定义复合格式的视图,比如第一个字节是 Uint8(无符号 8 位整数)、第二、三个字节是 Int16(16 位整数)、第四个字节开始是 Float32(32 位浮点数)等等,此外还可自定义字节序。
简单说,ArrayBuffer对象代表原始二进制数据,TypedArray 视图用来读写简单类型的二进制数据,DataView视图用来读写复杂类型的二进制数据。
二 语法及使用
具体语法与使用参考下面资料,这里暂不详细整理。