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
d6045d09c9
commit
3c4b9d1a63
@ -454,9 +454,19 @@ Float64Array.BYTES_PER_ELEMENT // 8
|
||||
function ab2str(buf) {
|
||||
// 注意,如果是大型二进制数组,为了避免溢出,
|
||||
// 必须一个一个字符地转
|
||||
if (buf && buf.byteLength < 1024) {
|
||||
return String.fromCharCode.apply(null, new Uint16Array(buf));
|
||||
}
|
||||
|
||||
const bufView = new Uint16Array(buf);
|
||||
const len = bufView.length;
|
||||
const bstr = new Array(len);
|
||||
for (let i = 0; i < len; i++) {
|
||||
bstr[i] = String.fromCharCode.call(null, bufView[i]);
|
||||
}
|
||||
return bstr.join('');
|
||||
}
|
||||
|
||||
// 字符串转为 ArrayBuffer 对象,参数为字符串
|
||||
function str2ab(str) {
|
||||
const buf = new ArrayBuffer(str.length * 2); // 每个字符占用2个字节
|
||||
|
@ -321,7 +321,7 @@ g(1, 2, 3); // [1, 2, 3, 9, 1, 2, 3]
|
||||
|
||||
Unix 操作系统有一个管道机制(pipeline),可以把前一个操作的值传给后一个操作。这个机制非常有用,使得简单的操作可以组合成为复杂的操作。许多语言都有管道的实现,现在有一个[提案](https://github.com/tc39/proposal-partial-application),让 JavaScript 也拥有管道机制。
|
||||
|
||||
JavaScript 的管道是一个运算符,写作`|>`。它的左边是一个表达式,右边是一个函数。管道运算符把左边表达式的值,传入右边的函数进行求职。
|
||||
JavaScript 的管道是一个运算符,写作`|>`。它的左边是一个表达式,右边是一个函数。管道运算符把左边表达式的值,传入右边的函数进行求值。
|
||||
|
||||
```javascript
|
||||
x |> f
|
||||
|
@ -55,7 +55,7 @@ set.size // 56
|
||||
[...new Set(array)]
|
||||
```
|
||||
|
||||
向 Set 加入值的时候,不会发生类型转换,所以`5`和`"5"`是两个不同的值。Set 内部判断两个值是否不同,使用的算法叫做“Same-value equality”,它类似于精确相等运算符(`===`),主要的区别是`NaN`等于自身,而精确相等运算符认为`NaN`不等于自身。
|
||||
向 Set 加入值的时候,不会发生类型转换,所以`5`和`"5"`是两个不同的值。Set 内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,它类似于精确相等运算符(`===`),主要的区别是`NaN`等于自身,而精确相等运算符认为`NaN`不等于自身。
|
||||
|
||||
```javascript
|
||||
let set = new Set();
|
||||
|
Loading…
x
Reference in New Issue
Block a user