16
16
17
17
简单说,` ArrayBuffer ` 对象代表原始的二进制数据,` TypedArray ` 视图用来读写简单类型的二进制数据,` DataView ` 视图用来读写复杂类型的二进制数据。
18
18
19
- ` TypedArray ` 视图支持的数据类型一共有 9 种( ` DataView ` 视图支持除 ` Uint8C ` 以外的其他 8 种) 。
19
+ ` TypedArray ` 视图支持的数据类型一共有12种 。
20
20
21
21
| 数据类型 | 字节长度 | 含义 | 对应的 C 语言类型 |
22
22
| -------- | -------- | -------------------------------- | ----------------- |
27
27
| Uint16 | 2 | 16 位不带符号整数 | unsigned short |
28
28
| Int32 | 4 | 32 位带符号整数 | int |
29
29
| Uint32 | 4 | 32 位不带符号的整数 | unsigned int |
30
+ | BigInt64 | 8 | 64 位有符号整数 | |
31
+ | BigUint64 | 8 | 64 位无符号整数 | |
32
+ | Float16 | 2 | 16 位浮点数 | |
30
33
| Float32 | 4 | 32 位浮点数 | float |
31
34
| Float64 | 8 | 64 位浮点数 | double |
32
35
@@ -153,10 +156,13 @@ ArrayBuffer.isView(v) // true
153
156
- ** ` Uint16Array ` ** :16 位无符号整数,长度 2 个字节。
154
157
- ** ` Int32Array ` ** :32 位有符号整数,长度 4 个字节。
155
158
- ** ` Uint32Array ` ** :32 位无符号整数,长度 4 个字节。
159
+ - ** ` BigInt64Array ` ** : 64 位有符号整数,长度 8 个字节。
160
+ - ** ` BigUint64Array ` ** :64 位无符号整数,长度 8 个字节。
161
+ - ** ` Float16Array ` ** : 16 位浮点数,长度 2 个字节。
156
162
- ** ` Float32Array ` ** :32 位浮点数,长度 4 个字节。
157
163
- ** ` Float64Array ` ** :64 位浮点数,长度 8 个字节。
158
164
159
- 这 9 个构造函数生成的数组 ,统称为` TypedArray ` 视图。它们很像普通数组,都有` length ` 属性,都能用方括号运算符(` [] ` )获取单个元素,所有数组的方法,在它们上面都能使用。普通数组与 TypedArray 数组的差异主要在以下方面。
165
+ 这12个构造函数生成的数组 ,统称为` TypedArray ` 视图。它们很像普通数组,都有` length ` 属性,都能用方括号运算符(` [] ` )获取单个元素,所有数组的方法,在它们上面都能使用。普通数组与 TypedArray 数组的差异主要在以下方面。
160
166
161
167
- TypedArray 数组的所有成员,都是同一种类型。
162
168
- TypedArray 数组的成员是连续的,不会有空位。
@@ -165,7 +171,7 @@ ArrayBuffer.isView(v) // true
165
171
166
172
### 构造函数
167
173
168
- TypedArray 数组提供 9 种构造函数 ,用来生成相应类型的数组实例。
174
+ TypedArray 数组提供12种构造函数 ,用来生成相应类型的数组实例。
169
175
170
176
构造函数有多种用法。
171
177
@@ -746,7 +752,7 @@ const dv = new DataView(buffer);
746
752
- ` DataView.prototype.byteLength ` :返回占据的内存字节长度
747
753
- ` DataView.prototype.byteOffset ` :返回当前视图从对应的 ArrayBuffer 对象的哪个字节开始
748
754
749
- ` DataView ` 实例提供10个方法读取内存 。
755
+ ` DataView ` 实例提供11个方法读取内存 。
750
756
751
757
- ** ` getInt8 ` ** :读取 1 个字节,返回一个 8 位整数。
752
758
- ** ` getUint8 ` ** :读取 1 个字节,返回一个无符号的 8 位整数。
@@ -756,6 +762,7 @@ const dv = new DataView(buffer);
756
762
- ** ` getUint32 ` ** :读取 4 个字节,返回一个无符号的 32 位整数。
757
763
- ** ` getBigInt64 ` ** :读取 8 个字节,返回一个 64 位整数。
758
764
- ** ` getBigUint64 ` ** :读取 8 个字节,返回一个无符号的 64 位整数。
765
+ - ** ` getFloat16 ` ** :读取 2 个字节,返回一个 16 位浮点数。
759
766
- ** ` getFloat32 ` ** :读取 4 个字节,返回一个 32 位浮点数。
760
767
- ** ` getFloat64 ` ** :读取 8 个字节,返回一个 64 位浮点数。
761
768
@@ -790,7 +797,7 @@ const v2 = dv.getUint16(3, false);
790
797
const v3 = dv .getUint16 (3 );
791
798
```
792
799
793
- DataView 视图提供10个方法写入内存 。
800
+ DataView 视图提供11个方法写入内存 。
794
801
795
802
- ** ` setInt8 ` ** :写入 1 个字节的 8 位整数。
796
803
- ** ` setUint8 ` ** :写入 1 个字节的 8 位无符号整数。
@@ -800,6 +807,7 @@ DataView 视图提供10个方法写入内存。
800
807
- ** ` setUint32 ` ** :写入 4 个字节的 32 位无符号整数。
801
808
- ** ` setBigInt64 ` ** :写入 8 个字节的 64 位整数。
802
809
- ** ` setBigUint64 ` ** :写入 8 个字节的 64 位无符号整数。
810
+ - ** ` setFloat16 ` ** :写入 2 个字节的 16 位浮点数。
803
811
- ** ` setFloat32 ` ** :写入 4 个字节的 32 位浮点数。
804
812
- ** ` setFloat64 ` ** :写入 8 个字节的 64 位浮点数。
805
813
0 commit comments