在 Deno 中使用 Buffer 和 TypedArray
简介
Deno 是一个新兴的 JavaScript 和 TypeScript 运行时环境,它由 Node.js 的创造者 Ryan Dahl 所创建。它具有许多独特的功能,例如安全性,不需要 NPM,直接支持 ES6 模块等。在 Deno 中,我们可以使用 Buffer 和 TypedArray 来处理二进制数据。
Buffer
在 Node.js 中,Buffer 是一个用于处理二进制数据的全局对象,在 Deno 中也是一样。它可以让我们在 Node.js 中进行文件 I/O、网络 I/O 和其他操作时,更加快速和高效地处理二进制数据。
在 Deno 中,我们可以使用标准的 ArrayBuffer 和 Uint8Array 对象来处理二进制数据。尽管这些对象在语法上与节点中的 Buffer 不同,但它们的功能几乎相同。在 Deno 中,我们可以通过以下方法创建和使用 ArrayBuffer 和 Uint8Array 对象:
const buf = new ArrayBuffer(16); const arr = new Uint8Array(buf); arr[0] = 10; //...
这里,我们首先创建了一个 16 字节大小的二进制数据缓冲区,并使用它创建了一个 Uint8Array 数组。然后,我们可以使用数组下标来设置数组中的每一项的值。
TypedArray
TypedArray 是一系列类型化数组的构造函数,它们被用于在 JavaScript 中更高效地处理二进制数据。在 Deno 中,TypedArray 支持以下类型:
- Int8Array
- Uint8Array
- Uint8ClampedArray
- Int16Array
- Uint16Array
- Int32Array
- Uint32Array
- BigInt64Array
- BigUint64Array
- Float32Array
- Float64Array
这里有一些使用 TypedArray 在 Deno 中处理二进制数据的示例代码:
// 创建一个 Int16Array,包含一些数字 const numArr = new Int16Array([1, 2, 3, 4]); console.log(numArr); // 创建一个 Uint8Array,包含一些字母 const charArr = new Uint8Array([72, 101, 108, 108, 111, 33]); console.log(String.fromCharCode.apply(null, charArr));
在这里,我们首先创建了一个包含数字的 Int16Array,然后将其打印出来,看看它是否包含我们初始化时设置的数字。接下来,我们创建了一个包含字母的 Uint8Array,并使用 String.fromCharCode 来将其转换为字符串。
结论
在 Deno 中,我们可以使用 ArrayBuffer 和 TypedArray 来更加高效地处理二进制数据。与 Node.js 中的 Buffer 相比,Denjos 的 ArrayBuffer 和 TypedArray 使用起来可能并不方便,但是,使用 TypedArray 可以让我们更加高效地处理二进制数据。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/674da9b1947dc5bcb3001269