js中ArrayBuffer和node中Buffer的关系和区别
程序开发
2023-09-22 17:33:53
ArrayBuffer
对象用来表示通用的、固定长度的原始二进制数据缓冲区。它是一个字节数组,通常在其他语言中称为“byte array”。你不能直接操作
ArrayBuffer
中的内容;而是要通过类型化数组对象或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。ArrayBuffer用来表示二进制数据缓冲区。比如我们使用fs.readFileSync模块读取一个文件a.txt的时候,底层逻辑就是把a文件的内容,写入缓冲区;
然后执行fs.writefilesync的时候,底层逻辑就是,把缓冲区的内容读出来,写入文件b.txt中。
DataView 也可以用来操纵ArrayBuffer
DataView
视图是一个可以从 二进制ArrayBuffer 对象中读写多种数值类型的底层接口,使用它时,不用考虑不同平台的字节序问题。
ArrayBuffer 用来标识二进制数据,不能直接用代码操纵
js中可以用类型化数组
TypedArray操纵ArrayBuffer- TypedArray 是类型化数组(也叫做 定型数组),用来操纵 ArrayBuffer
- TypedArray 包含Uint8Array,Uint16Array等类型,也称为一种“视图”
- ArrayBuffer 是所有类型化数组和视图引用的基本单位
node 中的Buffer,和上述的TypedArray、DataView实际是一种东西,都是用来操纵ArrayBuffer的一种工具。
看到没,无论是js中的,TypeArray,还是DataView,还是node中的buffer,他们本质都是一种工具,都是用来给用户(开发者)展示二进制数据的一个工具,本质都是用来操纵ArrayBuffer的。
NodeJS中ArrayBuffer与Buffer的异同 - 知乎首发于 知乎问题 ‘ArrayBuffer 和 Buffer 有何区别?’ ArrayBuffer 和 Buffer 有何区别?首先说结论, ArrayBuffer [1] 对象用来表示通用的、固定长度的原始二进制数据缓冲区,是一个字节数组,可读但不可直接写…https://zhuanlan.zhihu.com/p/144381462
标签:
相关文章
-
无相关信息