Buffer是一个类似于Arrray的对象,但它主要用于操作字节。
1. 模块结构
Buffer是一个典型 的JavaScript与C++结合的模块,它将性能相关部分用C++实现,将非性能相关的部分用JavaScript实现:
buffer的分工
2. Buffer对象
Buffer对象类似于数组,它的元素为16进制的两位数(0-255数值)
- 中文字在
utf-8
中占用3个字符。
var str = '在学习Node啊!'
var buf = new Buffer(str);
console.log(buf);
//<Buffer e5 9c a8 e5 ad a6 e4 b9 a0 4e 6f 64 65 e5 95 8a ef bc 81>
var strBuf = new Buffer('str','utf-8')
//<Buffer 73 74 72>
- 我们可以通过下标对他进行赋值(0-255整数)
var buf = new Buffer(100);
buf.length // 100
console.log(buf[10]) //0
buf[10] = 100
console.log(buf[10]) //100
- 如果给元素赋值不是0-255的整数,而是小数时:
buf[20] = -100;
buf[20] // 156;
buf[21] = 300;
buf[21] // 44
buf[22] = 3.1415;
buf[22] //3
- 给元素赋值小余0 ,该赋值逐次加256,直到得到一个0-255的整数;
- 给元素赋值大余255 ,该赋值逐次减256,直到得到一个0-255的整数;
- 如果是小数,舍弃小数部分,保留整数部分。
网友评论