yutent 45a7e8b2be 简化语法 2024-06-26 13:51:01 +08:00
src 简化语法 2024-06-26 13:51:01 +08:00
.gitignore init 2024-05-29 18:49:31 +08:00
.npmignore init 2024-05-29 18:49:31 +08:00
.prettierrc.yaml init 2024-05-29 18:49:31 +08:00
LICENSE update 2024-05-30 12:01:34 +08:00
README.md 更新文档 2024-05-30 12:51:59 +08:00
build.js 更新该校 2024-05-30 12:26:36 +08:00
package.json 更新文档 2024-05-30 12:51:59 +08:00

README.md

Buffer

浏览器版的 Buffer 对象模拟, 提供近似 Node.js 的 BUffer 对象的 API。

@bytedo/buffer

文档

以下方法的 encoding, 如无特殊说明, 均只支持utf8(默认),base64, hex, binary4 种。

静态方法

Buffer.from(data, offsetOrEncoding, end)

Node.js版基本一致, 支持从数组/字符串等值中创建 Buffer 对象。

Buffer.alloc(len, str, encoding)

Node.js版基本一致, 创建指定字节长度的 Buffer, 同时填充内容。

Buffer.concat(list, totalLength)

Node.js版基本一致, 合并多个 Buffer 对象, 可指定总字节长度。

Buffer.isBuffer(target)

Node.js版基本一致, 判断指定值是否为 Buffer 对象。

Buffer.compare(buf1, buf2)

Node.js版基本一致, 比较 2 个 Buffer 对象, 通常用于排序中, 返回-1/0/1

Buffer.byteLength(data, encoding)

Node.js版基本一致, 返回给定内容的字节长度, 内容可以是任意类型。

实例方法

.toString(encoding, start, end)

Node.js版基本一致, 将Buffer对象转为字符串。 其中encoding支持utf8(默认),base64, hex, binary4 种。

.fill(val, start, end, encoding)

Node.js版基本一致, 向 Buffer 对象中填充内容, 可填充到指定位置。

.copy(target, targetStart, sourceStart, sourceEnd)

向目标对象中复制当前对象, 注意, 该方法改变的不是自身, 是传入的对象, 这个行为与Node.js版一致。

.write(val, offset, len, encoding)

Node.js版基本一致, 指定位置写入数据, 可以是任意类型。

.compare(buf)

与静态方法的功能一样, 只是这里比较的对象是自身, 返回-1/0/1

.equals(buf)

Node.js版基本一致, 判断与给定的对象是否一致, 返回true/false

.includes(data, offset, encoding)

Node.js版基本一致, 判断给定内容是否包含在内, 可从指定位置开始判断, 返回true/false

其他操作

Buffer 对象, 可以直接用于创建文件对象, 如下

let file = new File([Buffer.from('这是一段文本')], 'demo.txt', {
  type: 'text/plain'
})

console.log(file)

但是由于浏览器端暂不支持非异步的方法将Blob/File对象转成ArrayBuffer, 所以暂时不支持从Blob/File中创建Buffer对象.

浏览器版的Buffer对象模拟, 提供近似Node.js的BUffer对象的API
JavaScript 100%