nodejs学习笔记

一、buffer:

    全局对象(单例   Buffer.from   Buffer.alloc   Buffer.allocUnsafe )

编码类型描述
ascii仅仅用于7位ascall数据编码,速度快,如果设置了将会剥离高位
utf8多字节的编码的Unicode字符,网页文档大部分默认都为它。
utf16le小端编码的Unicode字符,2或者4个字节
ucs2utf16le的别名
base64Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
latin1将Buffer编码为一个字节的编码字符串的一种方法,和binary相同
binarylatin1的别名
hex将每个字节编码为两个十六进制的字符


       

方法参数描述注意事项
Buffer.from(array)

array普通数组


返回包含所提供的八位字节的副本的新缓冲区

注意数组内的必须是数字,如果是字符串,则会返回一个等同于数组长度的初始化为0的buffer(见例1)
Buffer.from(arrayBuffer[, byteOffset [, length]])

1、arrayBuffer:继承TypedArry或者ArrayBuffer的.buffer

2、byteOffset:开始copy的游标,默认从0开始

3、length:要拷贝的长度,默认arrayBuffer.length - byteOffset


返回一个新的Buffer,它与给定的ArrayBuffer共享相同的分配的内存

注意:共享内存,就像js的浅复制一样,共享内存,一个被改动都会改动(见例2)
Buffer.from(buffer) 

buffer:用于从中复制数据的现有缓冲区


返回一个包含给定Buffer的内容的副本的新Buffer

注意:各自拥有不同的内存,(见例3)
Buffer.from(string[, encoding])

string:待编码的字符串

encoding: 编码格式


返回一个包含所提供字符串副本的新缓冲区

(见例4)

例1:

wKiom1h4hyaC42g3AACOcdiuB3M242.png-wh_50

例2:

wKiom1h4klmA2ft5AAB67VR8aD8526.png-wh_50

例3

wKioL1h4klmRMWfrAABKj_xz4po226.png-wh_50

例4:

wKiom1h4lbvx5suJAABMqoTszb4035.png-wh_50

方法参数描述注意事项

Buffer.alloc(size[, fill[, encoding]])

size: 新buffer的大小

fill:初始化的数据

encoding:编码格式


返回新的buffer

和allocUnsafe对比,比较慢但是能确保不会带脏数据或者为初始化的数据

(见例5)

Buffer.allocUnsafe(size)

size: 新buffer的大小


返回一个新的Buffer,它与给定的ArrayBuffer共享相同的分配的内存

和alloc对比,比较快,但是会带有脏数据,不会进行初始化

(见例5)

事例5:

wKiom1h4nZ_AWGFBAABb9DZssEY593.png-wh_50