面试

前端NodeJS面试之Buffer

2020-02-22  本文已影响0人  跨栏高手东莞仔

    之前去面试前端,可能觉得css,js工作用的比较多了,node没有好好准备,问到buffer被面试官问住了,这里总结一下buffer的基本认识(比较浅,大佬轻喷)

    buffer顾名思义,字面意思是缓冲。

     buffer 的节奏和我们的数组结构非常像,操作方法也和数组类型类似,换句话说就可以当成数组。那既然数组功能这么强大为什么我们还要弄出一个buffer呢?

    js数组的和其他语言的数组性能相对比较差,而且js数组只能 存Object,String,Number。在网页开发这些数据类型完全够用了,我们设想一下在服务器端,这些数据类型够用么?显然不够。如果客户端和服务器端通信的时候,传统的js数组不能存图片,mp3等视频文件(二进制文件)。所以buffer简单理解就是用来存储二进制文件。

    buffer不需要引入第三方模块,直接引入使用即可

    buffer中存储的是二进制数据,但是是以八进制现实的如Buffer<48 65 6c 6c 6f>存储的就是hello;buffer中的一个元素占用一个字节;buffer每个元素存储的范围是00000000-11111111,显示实范围00-ff

    创建buffer的方法:var buff = Buffer.alloc(10)

    将字符串转换成buffer:Buffer.from

    讲缓冲区中的数据转换成字符串 Buffer.toString

    Buffer是对内存的直接操作,规定存储大小之后就不能修改了;比如刚才创建的buff对象,buff[10]是无效的操作; 如果我执行buff[0] = 556(二进制1000101100),只取后8位(001101100),显示结果是<...2c...>,打印结果console.log(buff[0]) 是44

    

上一篇 下一篇

猜你喜欢

热点阅读