Javascript是一种动态语言,为什么在创建缓冲区时必须提到缓冲区的大小?
var buffer = new Buffer(10);
答案 0 :(得分:2)
我认为Buffer
个实例可能会在幕后使用typed arrays来提高效率,甚至是低级数组(因为Buffer
是Node的本机部分,用C ++编写,而不是JavaScript)。实际上,看node_buffer.cc
,情况似乎如此。类型化数组或低级数组是固定大小的创建分配结构。
附注:new Buffer(size)
已弃用;请改用Buffer.alloc
。
答案 1 :(得分:2)
来自Node.js文档:
Buffer类的实例类似于整数数组但是 对应于V8堆外部的固定大小的原始内存分配。 Buffer的大小在创建时建立,不可以 调整大小。
由于数组本身需要在初始化时指定它们的大小,因此缓冲区也是如此。