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视图用来读写复杂类型的二进制数据

二 语法及使用

具体语法与使用参考下面资料,这里暂不详细整理。

参考

http://es6.ruanyifeng.com/#docs/arraybuffer

results matching ""

    No results matching ""