From a77e9979109ff4f8dc3250ef4d8ed57cb094f224 Mon Sep 17 00:00:00 2001 From: new9xgh <244013304@qq.com> Date: Sun, 25 Nov 2018 15:46:11 +0800 Subject: [PATCH] update text --- docs/arraybuffer.md | 45 +++++++++++++++++++++++---------------------- docs/decorator.md | 2 +- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/docs/arraybuffer.md b/docs/arraybuffer.md index e886925..cf883c3 100644 --- a/docs/arraybuffer.md +++ b/docs/arraybuffer.md @@ -14,9 +14,9 @@ **(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 语言类型 | | -------- | -------- | -------------------------------- | ----------------- | @@ -64,7 +64,7 @@ dataView.getUint8(0) // 0 上面代码对一段 32 字节的内存,建立`DataView`视图,然后以不带符号的 8 位整数格式,从头读取 8 位二进制数据,结果得到 0,因为原始内存的`ArrayBuffer`对象,默认所有位都是 0。 -另一种 TypedArray 视图,与`DataView`视图的一个区别是,它不是一个构造函数,而是一组构造函数,代表不同的数据格式。 +另一种`TypedArray`视图,与`DataView`视图的一个区别是,它不是一个构造函数,而是一组构造函数,代表不同的数据格式。 ```javascript const buffer = new ArrayBuffer(12); @@ -79,7 +79,7 @@ x1[0] // 2 上面代码对同一段内存,分别建立两种视图:32 位带符号整数(`Int32Array`构造函数)和 8 位不带符号整数(`Uint8Array`构造函数)。由于两个视图对应的是同一段内存,一个视图修改底层内存,会影响到另一个视图。 -TypedArray 视图的构造函数,除了接受`ArrayBuffer`实例作为参数,还可以接受普通数组作为参数,直接分配内存生成底层的`ArrayBuffer`实例,并同时完成对这段内存的赋值。 +`TypedArray`视图的构造函数,除了接受`ArrayBuffer`实例作为参数,还可以接受普通数组作为参数,直接分配内存生成底层的`ArrayBuffer`实例,并同时完成对这段内存的赋值。 ```javascript const typedArray = new Uint8Array([0,1,2]); @@ -89,7 +89,7 @@ typedArray[0] = 5; typedArray // [5, 1, 2] ``` -上面代码使用 TypedArray 视图的`Uint8Array`构造函数,新建一个不带符号的 8 位整数视图。可以看到,`Uint8Array`直接使用普通数组作为参数,对底层内存的赋值同时完成。 +上面代码使用`TypedArray`视图的`Uint8Array`构造函数,新建一个不带符号的 8 位整数视图。可以看到,`Uint8Array`直接使用普通数组作为参数,对底层内存的赋值同时完成。 ### ArrayBuffer.prototype.byteLength @@ -128,7 +128,7 @@ const newBuffer = buffer.slice(0, 3); ### ArrayBuffer.isView() -`ArrayBuffer`有一个静态方法`isView`,返回一个布尔值,表示参数是否为`ArrayBuffer`的视图实例。这个方法大致相当于判断参数,是否为 TypedArray 实例或`DataView`实例。 +`ArrayBuffer`有一个静态方法`isView`,返回一个布尔值,表示参数是否为`ArrayBuffer`的视图实例。这个方法大致相当于判断参数,是否为`TypedArray`实例或`DataView`实例。 ```javascript const buffer = new ArrayBuffer(8); @@ -142,9 +142,9 @@ ArrayBuffer.isView(v) // true ### 概述 -`ArrayBuffer`对象作为内存区域,可以存放多种类型的数据。同一段内存,不同数据有不同的解读方式,这就叫做“视图”(view)。`ArrayBuffer`有两种视图,一种是 TypedArray 视图,另一种是`DataView`视图。前者的数组成员都是同一个数据类型,后者的数组成员可以是不同的数据类型。 +`ArrayBuffer`对象作为内存区域,可以存放多种类型的数据。同一段内存,不同数据有不同的解读方式,这就叫做“视图”(view)。`ArrayBuffer`有两种视图,一种是`TypedArray`视图,另一种是`DataView`视图。前者的数组成员都是同一个数据类型,后者的数组成员可以是不同的数据类型。 -目前,TypedArray 视图一共包括 9 种类型,每一种视图都是一种构造函数。 +目前,`TypedArray`视图一共包括 9 种类型,每一种视图都是一种构造函数。 - **`Int8Array`**:8 位有符号整数,长度 1 个字节。 - **`Uint8Array`**:8 位无符号整数,长度 1 个字节。 @@ -156,7 +156,7 @@ ArrayBuffer.isView(v) // true - **`Float32Array`**:32 位浮点数,长度 4 个字节。 - **`Float64Array`**:64 位浮点数,长度 8 个字节。 -这 9 个构造函数生成的数组,统称为 TypedArray 视图。它们很像普通数组,都有`length`属性,都能用方括号运算符(`[]`)获取单个元素,所有数组的方法,在它们上面都能使用。普通数组与 TypedArray 数组的差异主要在以下方面。 +这 9 个构造函数生成的数组,统称为`TypedArray`视图。它们很像普通数组,都有`length`属性,都能用方括号运算符(`[]`)获取单个元素,所有数组的方法,在它们上面都能使用。普通数组与 TypedArray 数组的差异主要在以下方面。 - TypedArray 数组的所有成员,都是同一种类型。 - TypedArray 数组的成员是连续的,不会有空位。 @@ -207,7 +207,7 @@ const i16 = new Int16Array(buffer, 1); 上面代码中,新生成一个 8 个字节的`ArrayBuffer`对象,然后在这个对象的第一个字节,建立带符号的 16 位整数视图,结果报错。因为,带符号的 16 位整数需要两个字节,所以`byteOffset`参数必须能够被 2 整除。 -如果想从任意字节开始解读`ArrayBuffer`对象,必须使用`DataView`视图,因为 TypedArray 视图只提供 9 种固定的解读格式。 +如果想从任意字节开始解读`ArrayBuffer`对象,必须使用`DataView`视图,因为`TypedArray`视图只提供 9 种固定的解读格式。 **(2)TypedArray(length)** @@ -224,7 +224,7 @@ f64a[2] = f64a[0] + f64a[1]; **(3)TypedArray(typedArray)** -TypedArray 数组的构造函数,可以接受另一个 TypedArray 实例作为参数。 +TypedArray 数组的构造函数,可以接受另一个`TypedArray`实例作为参数。 ```javascript const typedArray = new Int8Array(new Uint8Array(4)); @@ -260,15 +260,15 @@ y[0] // 2 **(4)TypedArray(arrayLikeObject)** -构造函数的参数也可以是一个普通数组,然后直接生成 TypedArray 实例。 +构造函数的参数也可以是一个普通数组,然后直接生成`TypedArray`实例。 ```javascript const typedArray = new Uint8Array([1, 2, 3, 4]); ``` -注意,这时 TypedArray 视图会重新开辟内存,不会在原数组的内存上建立视图。 +注意,这时`TypedArray`视图会重新开辟内存,不会在原数组的内存上建立视图。 -上面代码从一个普通的数组,生成一个 8 位无符号整数的 TypedArray 实例。 +上面代码从一个普通的数组,生成一个 8 位无符号整数的`TypedArray`实例。 TypedArray 数组也可以转换回普通数组。 @@ -435,6 +435,7 @@ function getPlatformEndianness() { ```javascript Int8Array.BYTES_PER_ELEMENT // 1 Uint8Array.BYTES_PER_ELEMENT // 1 +Uint8ClampedArray.BYTES_PER_ELEMENT // 1 Int16Array.BYTES_PER_ELEMENT // 2 Uint16Array.BYTES_PER_ELEMENT // 2 Int32Array.BYTES_PER_ELEMENT // 4 @@ -443,7 +444,7 @@ Float32Array.BYTES_PER_ELEMENT // 4 Float64Array.BYTES_PER_ELEMENT // 8 ``` -这个属性在 TypedArray 实例上也能获取,即有`TypedArray.prototype.BYTES_PER_ELEMENT`。 +这个属性在`TypedArray`实例上也能获取,即有`TypedArray.prototype.BYTES_PER_ELEMENT`。 ### ArrayBuffer 与字符串的互相转换 @@ -542,7 +543,7 @@ uint8c[0] // 0 ### TypedArray.prototype.buffer -TypedArray 实例的`buffer`属性,返回整段内存区域对应的`ArrayBuffer`对象。该属性为只读属性。 +`TypedArray`实例的`buffer`属性,返回整段内存区域对应的`ArrayBuffer`对象。该属性为只读属性。 ```javascript const a = new Float32Array(64); @@ -622,7 +623,7 @@ b.byteLength // 2 ### TypedArray.prototype.slice() -TypeArray 实例的`slice`方法,可以返回一个指定位置的新的 TypedArray 实例。 +TypeArray 实例的`slice`方法,可以返回一个指定位置的新的`TypedArray`实例。 ```javascript let ui8 = Uint8Array.of(0, 1, 2); @@ -636,7 +637,7 @@ ui8.slice(-1) ### TypedArray.of() -TypedArray 数组的所有构造函数,都有一个静态方法`of`,用于将参数转为一个 TypedArray 实例。 +TypedArray 数组的所有构造函数,都有一个静态方法`of`,用于将参数转为一个`TypedArray`实例。 ```javascript Float32Array.of(0.151, -8, 3.7) @@ -661,14 +662,14 @@ tarr[2] = 3; ### TypedArray.from() -静态方法`from`接受一个可遍历的数据结构(比如数组)作为参数,返回一个基于这个结构的 TypedArray 实例。 +静态方法`from`接受一个可遍历的数据结构(比如数组)作为参数,返回一个基于这个结构的`TypedArray`实例。 ```javascript Uint16Array.from([0, 1, 2]) // Uint16Array [ 0, 1, 2 ] ``` -这个方法还可以将一种 TypedArray 实例,转为另一种。 +这个方法还可以将一种`TypedArray`实例,转为另一种。 ```javascript const ui16 = Uint16Array.from(Uint8Array.of(0, 1, 2)); @@ -719,7 +720,7 @@ struct someStruct { 如果一段数据包括多种类型(比如服务器传来的 HTTP 数据),这时除了建立`ArrayBuffer`对象的复合视图以外,还可以通过`DataView`视图进行操作。 -`DataView`视图提供更多操作选项,而且支持设定字节序。本来,在设计目的上,`ArrayBuffer`对象的各种 TypedArray 视图,是用来向网卡、声卡之类的本机设备传送数据,所以使用本机的字节序就可以了;而`DataView`视图的设计目的,是用来处理网络设备传来的数据,所以大端字节序或小端字节序是可以自行设定的。 +`DataView`视图提供更多操作选项,而且支持设定字节序。本来,在设计目的上,`ArrayBuffer`对象的各种`TypedArray`视图,是用来向网卡、声卡之类的本机设备传送数据,所以使用本机的字节序就可以了;而`DataView`视图的设计目的,是用来处理网络设备传来的数据,所以大端字节序或小端字节序是可以自行设定的。 `DataView`视图本身也是构造函数,接受一个`ArrayBuffer`对象作为参数,生成视图。 @@ -734,7 +735,7 @@ const buffer = new ArrayBuffer(24); const dv = new DataView(buffer); ``` -`DataView`实例有以下属性,含义与 TypedArray 实例的同名方法相同。 +`DataView`实例有以下属性,含义与`TypedArray`实例的同名方法相同。 - `DataView.prototype.buffer`:返回对应的 ArrayBuffer 对象 - `DataView.prototype.byteLength`:返回占据的内存字节长度 diff --git a/docs/decorator.md b/docs/decorator.md index 3cc385f..d2daa92 100644 --- a/docs/decorator.md +++ b/docs/decorator.md @@ -774,7 +774,7 @@ obj.bar() // bar class MyClass {} ``` -上面代码排除`了TExample`的`foo`方法和`bar`方法,为`baz`方法起了别名`exampleBaz`。 +上面代码排除了`TExample`的`foo`方法和`bar`方法,为`baz`方法起了别名`exampleBaz`。 `as`方法则为上面的代码提供了另一种写法。