Skip to content

Commit 5f3f250

Browse files
committed
edit typedArray
1 parent e9f7c51 commit 5f3f250

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

docs/arraybuffer.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 二进制数组
22

3-
二进制数组(ArrayBuffer对象、TypedArray视图和DataView视图)是JavaScript操作二进制数据的一个接口。这些对象早就存在,属于独立的规格,ES6将它们纳入了ECMAScript规格,并且增加了新的方法。
3+
二进制数组(ArrayBuffer对象、TypedArray视图和DataView视图)是JavaScript操作二进制数据的一个接口。这些对象早就存在,属于独立的规格(2011年2月发布),ES6将它们纳入了ECMAScript规格,并且增加了新的方法。
44

55
这个接口的原始设计目的,与WebGL项目有关。所谓WebGL,就是指浏览器与显卡之间的通信接口,为了满足JavaScript与显卡之间大量的、实时的数据交换,它们之间的数据通信必须是二进制的,而不能是传统的文本格式。文本格式传递一个32位整数,两端的JavaScript脚本与显卡都要进行格式转化,将非常耗时。这时要是存在一种机制,可以像C语言那样,直接操作字节,将4个字节的32位整数,以二进制形式原封不动地送入显卡,脚本的性能就会大幅提升。
66

@@ -464,7 +464,7 @@ function str2ab(str) {
464464

465465
不同的视图类型,所能容纳的数值范围是确定的。超出这个范围,就会出现溢出。
466466

467-
TypedArray数组对于溢出,采用的处理方法是求余值。正向溢出(overflow)等于,当前数据类型的最小值加上余值,再减去1;负向溢出(underflow)等于当前数据类型的最大值减去余值,再加上1。
467+
TypedArray数组对于溢出,采用的处理方法是求余值。正向溢出(overflow)的含义是输入值大于当前数据类型的最大值,最后得到的值就等于当前数据类型的最小值加上余值,再减去1;负向溢出(underflow)等于当前数据类型的最大值减去余值,再加上1。
468468

469469
```javascript
470470
var uint8 = new Uint8Array(1);
@@ -476,7 +476,7 @@ uint8[0] = -1;
476476
uint8[0] // 255
477477
```
478478

479-
上面例子中,8位无符号整数的数值范围是0到255,超出这个范围,就是溢出。256相当于正向溢出1,回到最小值0;-1相当于负向溢出1,回到最大值255
479+
上面例子中,8位无符号整数的数值范围是0到255,超出这个范围,就是溢出。256相当于正向溢出1,即余值为1,最后的值等于0(`0 + 1 -1`;-1相当于负向溢出1,余值也为1,最后的值等于255(`255 - 1 + 1`
480480

481481
下面是8位带符号整数的例子。
482482

@@ -609,6 +609,22 @@ Float32Array.of(0.151, -8, 3.7)
609609
// Float32Array [ 0.151, -8, 3.7 ]
610610
```
611611

612+
下面三种方法都会生成同样一个TypedArray数组。
613+
614+
```javascript
615+
// 方法一
616+
let tarr = new Uint8Array([1,2,3]);
617+
618+
// 方法二
619+
let tarr = Uint8Array.of(1,2,3);
620+
621+
// 方法三
622+
let tarr = new Uint8Array(3);
623+
tarr[0] = 0;
624+
tarr[1] = 1;
625+
tarr[2] = 2;
626+
```
627+
612628
### TypedArray.from()
613629

614630
静态方法`from`接受一个可遍历的数据结构(比如数组)作为参数,返回一个基于这个结构的TypedArray实例。
@@ -883,7 +899,7 @@ reader.onload = function () {
883899
};
884900
```
885901

886-
下面以处理bmp文件为例。假定file变量是一个指向bmp文件的文件对象,首先读取文件。
902+
下面以处理bmp文件为例。假定`file`变量是一个指向bmp文件的文件对象,首先读取文件。
887903

888904
```javascript
889905
var reader = new FileReader();

0 commit comments

Comments
 (0)