mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 18:32:22 +00:00
docs(ArrayBuffer): edit ArrayBuffer
This commit is contained in:
parent
9efb9db803
commit
1728a4f339
@ -1,6 +1,6 @@
|
|||||||
# 二进制数组
|
# ArrayBuffer
|
||||||
|
|
||||||
二进制数组(`ArrayBuffer`对象、`TypedArray`视图和`DataView`视图)是 JavaScript 操作二进制数据的一个接口。这些对象早就存在,属于独立的规格(2011年2月发布),ES6 将它们纳入了 ECMAScript 规格,并且增加了新的方法。
|
`ArrayBuffer`对象、`TypedArray`视图和`DataView`视图是 JavaScript 操作二进制数据的一个接口。这些对象早就存在,属于独立的规格(2011年2月发布),ES6 将它们纳入了 ECMAScript 规格,并且增加了新的方法。它们都是以数组的语法处理二进制数据,所以统称为二进制数组。
|
||||||
|
|
||||||
这个接口的原始设计目的,与 WebGL 项目有关。所谓WebGL,就是指浏览器与显卡之间的通信接口,为了满足 JavaScript 与显卡之间大量的、实时的数据交换,它们之间的数据通信必须是二进制的,而不能是传统的文本格式。文本格式传递一个32位整数,两端的 JavaScript 脚本与显卡都要进行格式转化,将非常耗时。这时要是存在一种机制,可以像 C 语言那样,直接操作字节,将4个字节的32位整数,以二进制形式原封不动地送入显卡,脚本的性能就会大幅提升。
|
这个接口的原始设计目的,与 WebGL 项目有关。所谓WebGL,就是指浏览器与显卡之间的通信接口,为了满足 JavaScript 与显卡之间大量的、实时的数据交换,它们之间的数据通信必须是二进制的,而不能是传统的文本格式。文本格式传递一个32位整数,两端的 JavaScript 脚本与显卡都要进行格式转化,将非常耗时。这时要是存在一种机制,可以像 C 语言那样,直接操作字节,将4个字节的32位整数,以二进制形式原封不动地送入显卡,脚本的性能就会大幅提升。
|
||||||
|
|
||||||
@ -12,11 +12,11 @@
|
|||||||
|
|
||||||
**(2)TypedArray视图**:共包括9种类型的视图,比如`Uint8Array`(无符号8位整数)数组视图, `Int16Array`(16位整数)数组视图, `Float32Array`(32位浮点数)数组视图等等。
|
**(2)TypedArray视图**:共包括9种类型的视图,比如`Uint8Array`(无符号8位整数)数组视图, `Int16Array`(16位整数)数组视图, `Float32Array`(32位浮点数)数组视图等等。
|
||||||
|
|
||||||
**(3)`DataView`视图**:可以自定义复合格式的视图,比如第一个字节是Uint8(无符号8位整数)、第二、三个字节是Int16(16位整数)、第四个字节开始是Float32(32位浮点数)等等,此外还可以自定义字节序。
|
**(3)`DataView`视图**:可以自定义复合格式的视图,比如第一个字节是 Uint8(无符号8位整数)、第二、三个字节是 Int16(16位整数)、第四个字节开始是 Float32(32位浮点数)等等,此外还可以自定义字节序。
|
||||||
|
|
||||||
简单说,`ArrayBuffer`对象代表原始的二进制数据,TypedArray视图用来读写简单类型的二进制数据,`DataView`视图用来读写复杂类型的二进制数据。
|
简单说,`ArrayBuffer`对象代表原始的二进制数据,TypedArray视图用来读写简单类型的二进制数据,`DataView`视图用来读写复杂类型的二进制数据。
|
||||||
|
|
||||||
TypedArray视图支持的数据类型一共有9种(`DataView`视图支持除`Uint8C`以外的其他8种)。
|
TypedArray 视图支持的数据类型一共有9种(`DataView`视图支持除`Uint8C`以外的其他8种)。
|
||||||
|
|
||||||
数据类型 | 字节长度 | 含义 | 对应的C语言类型
|
数据类型 | 字节长度 | 含义 | 对应的C语言类型
|
||||||
--------|--------|----|---------------
|
--------|--------|----|---------------
|
||||||
@ -40,11 +40,11 @@ Float64|8|64位浮点数|double
|
|||||||
- Canvas
|
- Canvas
|
||||||
- WebSockets
|
- WebSockets
|
||||||
|
|
||||||
## ArrayBuffer对象
|
## ArrayBuffer 对象
|
||||||
|
|
||||||
### 概述
|
### 概述
|
||||||
|
|
||||||
`ArrayBuffer`对象代表储存二进制数据的一段内存,它不能直接读写,只能通过视图(TypedArray视图和`DataView`视图)来读写,视图的作用是以指定格式解读二进制数据。
|
`ArrayBuffer`对象代表储存二进制数据的一段内存,它不能直接读写,只能通过视图(`TypedArray`视图和`DataView`视图)来读写,视图的作用是以指定格式解读二进制数据。
|
||||||
|
|
||||||
`ArrayBuffer`也是一个构造函数,可以分配一段可以存放数据的连续内存区域。
|
`ArrayBuffer`也是一个构造函数,可以分配一段可以存放数据的连续内存区域。
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user