Buffer(缓冲区)

目录

一.概述

二.特点

三.创建buffer的方式:

1.alloc

2.allocUnsafe

3.from

四.buffer操作

1.buffer与字符串的转换

2.Buffer的读写

四.注意事项

1.溢出

 2.中文


一.概述

  • Buffer是一个类似于Array的对象,用于表示固定长度的字节序列。
  • 本质就是一段固定长度的内存空间,用于处理二进制数据

二.特点

  1. Buffer大小固定无法调整
  2. Buffer性能较好,可以直接对计算机内存进行操作
  3. 每个元素的大小为1字节

三.创建buffer的方式:

1.alloc

//创建一个10字节的buffer
let buf=Buffer.alloc(10);
console.log(buf);

由结果可以看出,alloc这种方法创建的buffer创建的二进制位,每一位都会归0。2

2.allocUnsafe

Unsafe中文“不安全”,(allocUnsafe所创建的Buffer其中可能会包含旧的内存数据)。

因为内存空间是可以复用的,且allocUnsafe并不会对旧的数据做一个清空。所以,该方法创建buffre比alloc速度更快。

//创建一个10字节的buffer
let buf_2=Buffer.allocUnsafe(10);
console.log(buf_2);

结果上同。

3.from

let buf_3=Buffer.from('hello');
console.log(buf_3);

其结果为字母对应的unicode编码(10进制),再将其转换成16进制。

也能将数组转成buffer

let buf_4=Buffer.from([105,108,111,118]);
console.log(buf_4);

转化中,数组中的数字会转成16进制存到Buffer当中。

四.buffer操作

1.buffer与字符串的转换

在转换字符串时,默认采用utf-8编码方式做的字符串转换。

//buffer
let buf_4=Buffer.from([105,108,111,118]);
console.log(buf_4.toString());

 运行结果:

2.Buffer的读写

取第一个元素h所保存的数据,获取方式

let buf=Buffer.from('hello');
console.log(buf[0]);

所得结果为104(十进制)

若要想查看其二进制数字,则

let buf=Buffer.from('hello');
console.log(buf[0].toString(2));

 注:该方法的toString()是进行数字的进制转换的

 buffer的

四.注意事项

1.溢出

buffer的二进制位所能存储的最大数字为255,对应的二进制数为11111111。

let buf=Buffer.from('hello');
buf[0]=361;//会发生溢出,舍弃高位的数字 0001 0110 1001==>0110 1001
console.log(buf);

 2.中文

let buf=Buffer.from('你好');
console.log(buf);

 

结果显示6个字节,并不是2个,因为这两个中文是utf-8的中文,一个utf-8的中文占3个字节。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值