Переглянути джерело

feat: 添加Buffer的介绍

usuifohe 2 роки тому
батько
коміт
b71a178b38
1 змінених файлів з 32 додано та 1 видалено
  1. 32 1
      NodeJS/README.md

+ 32 - 1
NodeJS/README.md

@@ -1471,4 +1471,35 @@ const compile = (template, data) => {
 }
 ```
 
-> `result` 就是编译之后 js 文件的内容
+> `result` 就是编译之后 js 文件的内容
+
+
+### Buffer
+
+在 node 中想要操作图片、音频、视频、文本等文件,需要将其转换成**二进制**数据才能进行后续操作
+
+比如某一个保存文本的文件并不是使用 utf-8 进行编码的,而使用 GBK,需要读取到它的二进制数据,再通过GKB转换成对应的文字
+
+比如需要读取一张图片数据,再通过某些手段对图片数据进行二次处理, node 中有一个 sharp 的库,就是读取图片或者传入图片的 buffer 再对其进行处理
+
+比如 node 中通过 tcp 建立长链接, tcp 传输的是字节流, 需要将数据转换成自己再进行传入,并且需要治澳传输字节的大小(客户端需要根据大小来判断读取多少内容)
+
+对前端来说很少会与二进制打交道,但是对服务端来说为了很多功能必须与二进制打交道, node 为了可以方便开发者完成更多功能提供了一个类 Buffer,并且是全局的
+
+Buffer 中存储的是二进制数据,可以将 Buffer 看成是一个存储二进制的数组,这个数组的中的每一项可以保存 **8位** 二进制
+
+```js
+const msg = "hello world";
+
+// 1. 直接new,过时的方法,会有警告
+const buffer = new Buffer(msg);
+console.log(buffer) // 输出对应字符串的十六进制
+
+// 其他创建方法
+// Buffer.alloc()、Buffer.allocUnsafe()、Buffer.from()
+const buffer1 = Buffer.from(msg)
+console.log(buffer)
+```
+
+## 浏览器的事件循环
+