阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js Buffer buf.fill

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

      版本变更
      v10.0.0Negative end values throw an ERR_INDEX_OUT_OF_RANGE error.
      v10.0.0Attempting to fill a non-zero length buffer with a zero length buffer triggers a thrown exception.
      v10.0.0Specifying an invalid string for value triggers a thrown exception.
      v5.7.0The 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 缓冲器,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录