Javascript 新节点缓冲区已经有数据了吗?

Javascript 新节点缓冲区已经有数据了吗?,javascript,node.js,buffer,Javascript,Node.js,Buffer,这是节点错误还是预期行为错误?可在0.12.7和io 3.1.0中复制: > new Buffer(5) <Buffer 00 00 02 00 00> > new Buffer(5) <Buffer 00 00 00 00 00> > new Buffer(5) <Buffer 28 94 00 02 01> > new Buffer(5) <Buffer 00 00 00 02 00> > new Buffer(5

这是节点错误还是预期行为错误?可在
0.12.7
io 3.1.0
中复制:

> new Buffer(5)
<Buffer 00 00 02 00 00>
> new Buffer(5)
<Buffer 00 00 00 00 00>
> new Buffer(5)
<Buffer 28 94 00 02 01>
> new Buffer(5)
<Buffer 00 00 00 02 00>
> new Buffer(5)
<Buffer 00 00 00 00 00>
> new Buffer(5)
<Buffer 00 98 94 00 02>
>新缓冲区(5)
>新缓冲区(5)
>新缓冲区(5)
>新缓冲区(5)
>新缓冲区(5)
>新缓冲区(5)

情况一直如此。将内存归零会增加开销,因此当您创建新缓冲区时,您可以看到最后包含的内存块的内容

如果您需要/想要将缓冲区归零,只需执行
Buffer.fill(0)

更新:

对于节点v6.0.0,更改了。现在,您可以通过
Buffer.alloc(size)
直接分配一个零填充,并通过
Buffer.allocUnsafe(size)
获取旧行为。这些新的
Buffer
API也已在v4.5.0中向后移植到v4.x。
new Buffer()
-风格的缓冲区创建现在被认为是不推荐使用的,并将在未来的主要版本中删除(如果我不得不猜测的话,最早可能是v8.0.0,以允许一个硬的不推荐周期)


此外,由于节点v5.10.0(v4.x分支为v4.5.0),您可以将
--zero fill buffers
参数传递给节点二进制文件,该文件将在创建时自动对所有缓冲区进行静默地归零填充。

我想,在写入缓冲区之前,我们不应该从缓冲区中提取任何内容,因此NodeJ不会为我们清空缓冲区(因为覆盖缓冲区中的数据需要额外的时间)?