yutent 45a7e8b2be | ||
---|---|---|
src | ||
.gitignore | ||
.npmignore | ||
.prettierrc.yaml | ||
LICENSE | ||
README.md | ||
build.js | ||
package.json |
README.md
Buffer
浏览器版的 Buffer 对象模拟, 提供近似 Node.js 的 BUffer 对象的 API。
文档
以下方法的 encoding, 如无特殊说明, 均只支持
utf8
(默认),base64
,hex
,binary
4 种。
静态方法
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
, binary
4 种。
.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
对象.