Node.js:Buffer.slice和Buffer.subarray之间的差异

Node.js:Buffer.slice和Buffer.subarray之间的差异,node.js,buffer,Node.js,Buffer,我查看了Node.js缓冲区文档,不理解和之间的区别 两者都指向“与原件相同的内存” 但似乎没有一个人不是另一个人的别名(在这种情况下似乎会这样说) 测试表明行为是一样的: > buf=Buffer.from([0,1,2,3,4,5,6]) <Buffer 00 01 02 03 04 05 06> > bufSlice=buf.slice(1,5) <Buffer 01 02 03 04> > bufSub=buf.subarray(1,5) <

我查看了Node.js缓冲区文档,不理解和之间的区别

两者都指向“与原件相同的内存”

但似乎没有一个人不是另一个人的别名(在这种情况下似乎会这样说)

测试表明行为是一样的:

> buf=Buffer.from([0,1,2,3,4,5,6])
<Buffer 00 01 02 03 04 05 06>
> bufSlice=buf.slice(1,5)
<Buffer 01 02 03 04>
> bufSub=buf.subarray(1,5)
<Buffer 01 02 03 04>
> bufSlice
<Buffer 01 02 03 04>
> bufSub
<Buffer 01 02 03 04>
> buf[3]=0xff
255
> buf
<Buffer 00 01 02 ff 04 05 06>
> bufSub
<Buffer 01 02 ff 04>
> bufSlice
<Buffer 01 02 ff 04>
>buf=Buffer.from([0,1,2,3,4,5,6])
>bufSlice=buf.切片(1,5)
>bufSub=buf.子阵列(1,5)
>小鳞片
>小灌木
>buf[3]=0xff
255
>buf
>小灌木
>小鳞片
(即使Node.js文档中的切片示例不是很清楚)


那么有什么不同呢?

我不确定,但这里有一篇有趣的关于2:。看起来他们达到了同样的结果;它们是更改内存地址值的破坏性方法,但它们的实现不同,因为它们的原型是
Uint8Array.prototype.slice()
TypedArray.prototype.subarray()