一直没有系统学习过Node.js, 今天开个坑,整理一下Node相关的内容
Node引入Buffer就是为了更方便处理二进制数据,下面整理一下Buffer常用api的作用
Buffer.from
通过传入的对象创建一个Buffer
Buffer.from('a') //<Buffer 61> 返回字符a的二进制码的十进制形式
Buffer.from([1, 2, 3]) // <Buffer 01 02 03> 传入一个数组,数组每一项用来设置Buffer的值
Buffer.from(Buffer.from([1, 2, 3])) //<Buffer 01 02 03> 获取一个Buffer的拷贝
Buffer.alloc
就像malloc一样,分配一块n字节的空间
Buffer.alloc(5) //<Buffer 00 00 00 00 00> 申请一块五字节的空间,每一份都用0填充
Buffer.alloc(5, 1) //<Buffer 01 01 01 01 01> alloc还支持第二个参数,用于指定初始值
Buffer与字符串的转换
(Buffer和字符串的关系真的很密切)
Buffer.from('Hello').toString() //Hello from 和 toString可以实现Buffer与String的转换
拼接Buffer
就像拼接数组一样,使用concat
Buffer.concat([Buffer.from('a'), Buffer.from('b')]) //<Buffer 61 62> 传入一个包含Buffer的数组
isBuffer
就像isArray一样,判断一个对象是不是Buffer
Buffer.isBuffer((Buffer.from('a'))) //true
indexOf
和数组一样的方法
(Buffer.from('a')).indexOf('a') //0 内部应该是某种类型转换
length
同样Buffer也有length属性(甚至也可以下标访问)
(Buffer.from('a')).length // 1