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

(暂略)接口

相关文章
相关标签/搜索