buf.fill(value[, offset[, end]][, encoding])
历史
| 版本 | 变化 | 
|---|---|
| v11.0.0 | 抛出   | 
| v10.0.0 | 负   | 
| v10.0.0 | 尝试用零长度缓冲区填充非零长度缓冲区会触发抛出的异常。  | 
| v10.0.0 | 为   | 
| v5.7.0 | 现在支持  | 
| v0.5.0 | 添加于:v0.5.0  | 
参数
value<string> | <Buffer> | <Uint8Array> | <integer> 要填充的值buf。offset<integer> 开始填充之前要跳过的字节数buf。 默认:0。end<integer> 在哪里停止填充buf(不包括在内)。 默认:。buf.lengthencoding<string> 如果value是字符串,则value的编码。 默认:'utf8'。- 返回: <Buffer>  对 
buf的引用。 
用指定的 value 填充 buf 。如果没有给出offset和end,则将填充整个buf:
import { Buffer } from 'node:buffer'; // Fill a `Buffer` with the ASCII character 'h'. const b = Buffer.allocUnsafe(50).fill('h'); console.log(b.toString()); // Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhconst { Buffer } = require('node:buffer'); // Fill a `Buffer` with the ASCII character 'h'. const b = Buffer.allocUnsafe(50).fill('h'); console.log(b.toString()); // Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
如果 value 不是字符串、Buffer 或整数,则 value 被强制转换为 uint32 值。如果结果整数大于 255(十进制),则 buf 将用 value & 255 填充。
如果 fill() 操作的最终写入落在 multi-byte 字符上,则仅写入适合 buf 的该字符的字节:
import { Buffer } from 'node:buffer'; // Fill a `Buffer` with character that takes up two bytes in UTF-8. console.log(Buffer.allocUnsafe(5).fill('\u0222')); // Prints: <Buffer c8 a2 c8 a2 c8>const { Buffer } = require('node:buffer'); // Fill a `Buffer` with character that takes up two bytes in UTF-8. console.log(Buffer.allocUnsafe(5).fill('\u0222')); // Prints: <Buffer c8 a2 c8 a2 c8>
如果value包含无效字符,则被截断;如果没有有效的填充数据,则抛出异常:
import { Buffer } from 'node:buffer'; 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.const { Buffer } = require('node:buffer'); 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.
相关用法
- Node.js Buffer buf.writeBigUInt64BE(value[, offset])用法及代码示例
 - Node.js Buffer buf.toString([encoding[, start[, end]]])用法及代码示例
 - Node.js Buffer buf.writeDoubleLE(value[, offset])用法及代码示例
 - Node.js Buffer buf.writeBigInt64LE(value[, offset])用法及代码示例
 - Node.js Buffer buf.keys()用法及代码示例
 - Node.js Buffer buf.writeFloatLE(value[, offset])用法及代码示例
 - Node.js Buffer buf.indexOf(value[, byteOffset][, encoding])用法及代码示例
 - Node.js Buffer buf.readFloatLE([offset])用法及代码示例
 - Node.js Buffer buf.readInt32LE([offset])用法及代码示例
 - Node.js Buffer buf.writeInt8(value[, offset])用法及代码示例
 - Node.js Buffer buf.swap32()用法及代码示例
 - Node.js Buffer buf.writeInt32LE(value[, offset])用法及代码示例
 - Node.js Buffer buf.writeIntLE(value, offset, byteLength)用法及代码示例
 - Node.js Buffer buf.values()用法及代码示例
 - Node.js Buffer buf.writeDoubleBE(value[, offset])用法及代码示例
 - Node.js Buffer buf.length用法及代码示例
 - Node.js Buffer buf.byteOffset用法及代码示例
 - Node.js Buffer buf.readUInt32BE([offset])用法及代码示例
 - Node.js Buffer buf.readDoubleLE([offset])用法及代码示例
 - Node.js Buffer buf.writeFloatBE(value[, offset])用法及代码示例
 - Node.js Buffer buf.readBigUInt64LE([offset])用法及代码示例
 - Node.js Buffer buf.readUInt16BE([offset])用法及代码示例
 - Node.js Buffer buf.writeInt16BE(value[, offset])用法及代码示例
 - Node.js Buffer buf.swap64()用法及代码示例
 - Node.js Buffer buf.readUInt8([offset])用法及代码示例
 
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 buf.fill(value[, offset[, end]][, encoding])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
