buf.fill(value[, offset[, end]][, encoding])


  • value <string> | <Buffer> | <integer> 用来填充 buf 的值。
  • offset <integer> 开始填充 buf 的偏移量。默认为 0
  • end <integer> 结束填充 buf 的偏移量(不包含)。默认为 buf.length
  • encoding <string> 如果 value 是字符串,则指定 value 的字符编码。默认为 'utf8'
  • 返回: <Buffer> buf 的引用。

用指定的 value 填充 buf。 如果没有指定 offsetend,则填充整个 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'));
// 抛出异常。
  • value <string> | <Buffer> | <integer> The value with which to fill buf.
  • offset <integer> Number of bytes to skip before starting to fill buf. Default: 0.
  • end <integer> Where to stop filling buf (not inclusive). Default: buf.length.
  • encoding <string> The encoding for value if value is a string. Default: 'utf8'.
  • Returns: <Buffer> A reference to buf.

Fills buf with the specified value. If the offset and end are not given, the entire buf will be filled:

// Fill a `Buffer` with the ASCII character 'h'.

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

console.log(b.toString());
// Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

value is coerced to a uint32 value if it is not a string or integer.

If the final write of a fill() operation falls on a multi-byte character, then only the bytes of that character that fit into buf are written:

// Fill a `Buffer` with a two-byte character.

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

If value contains invalid characters, it is truncated; if no valid fill data remains, an exception is thrown:

const buf = Buffer.allocUnsafe(5);

console.log(buf.fill('a'));
// Prints: <Buffer 61 61 61 61 61>
console.log(buf.fill('aazz', 'hex'));
// Prints: <Buffer aa aa aa aa aa>
console.log(buf.fill('zz', 'hex'));
// Throws an exception.