Node.js Buffer buf.fill

🌙
手机阅读
本文目录结构

Node.js Buffer buf.fill(value[, offset[, end]][, encoding])版本历史

版本 变更
v10.0.0 Negative end values throw an ERR_INDEX_OUT_OF_RANGE error.
v10.0.0 Attempting to fill a non-zero length buffer with a zero length buffer triggers a thrown exception.
v10.0.0 Specifying an invalid string for value triggers a thrown exception.
v5.7.0 The encoding parameter is supported now.
v0.5.0 新增于: v0.5.0
  • value < string> | < Buffer> | < integer> 用来填充 buf 的值。
  • offset < integer> 开始填充 buf 的偏移量。默认为 0。
  • end < integer> 结束填充 buf 的偏移量(不包含)。默认为 buf.length。
  • encoding < string> 如果 value 是字符串,则指定 value 的字符编码。默认为 ‘utf8’。
  • 返回: < Buffer> buf 的引用。

用指定的 value 填充 buf。 如果没有指定 offset 与 end,则填充整个 buf:

// 用 ASCII 字符 'h' 填充 `Buffer`。

const b = Buffer.allocUnsafe(50).fill('h');

console.log(b.toString());
// 输出: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

如果 value 不是字符串或整数,则会被转换为 uint32 值。

如果 fill() 最后写入的是一个多字节字符,则只写入适合 buf 的字节:

// 用一个双字节字符填充 `Buffer`。

console.log(Buffer.allocUnsafe(3).fill('\u0222'));
// 输出: <Buffer c8 a2 c8>

如果 value 包含无效的字符,则截掉无效的字符。 如果截掉后没有数据,则不填充:

const buf = Buffer.allocUnsafe(5);

console.log(buf.fill('a'));
// 输出: <Buffer 61 61 61 61 61>
console.log(buf.fill('aazz', 'hex'));
// 输出: <Buffer aa aa aa aa aa>
console.log(buf.fill('zz', 'hex'));
// 抛出异常。

更多内容请参考:Node.js Buffer 缓冲器,或者通过 点击对应菜单 进行查看;



AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

目前重心已经放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>