在 nodejs 中,buffer 与 uint8Array 这两种数据类型有什么不同呢?这是新人在 nodejs 平台处理二进制数据必定会面临的疑惑。

从用途来看,这两种数据类型是一样的 - 都是为了处理二进制数据;但是从当前技术实现来看,在 nodejs 中,uint8Array 是 buffer 的基类,buffer 是 uint8Array 的子类。

如果要深究,这里面的历史值得我们说道说道。
首先,为了处理二进制数据,nodejs 首先实现了一个单独的数据类型 buffer。

尔后,js 进入了 ES6 时代。在 ES6 标准规范中,js 引入了新的数据类型:uint8Array。nodejs 使用的编程语言毕竟还是 js,所以,它也想跟进 ECMAScript 标准规范。

最后,在 nodejs 4.0 之后,nodejs 也实现了 uint8Array 这个数据类型,并且为了跟浏览器兼容,把原先的独立的数据类型 buffer 归纳在新是实现的 uint8Array 数据类型之下 - uint8Array 是基类,buffer 继承了 uint8Array,成为了它的子类型。

参考链接:stackoverflow.com
展开
评论
评论