它的元素为16进制的两位数。一个元素就代表一个字节
Buffer中内存不是通过Javascript调配的,而是底层通过C++申请的,也就是咱们能够间接通过Buffer来创立内存中的空间
let str = 'Hello World' // 将一个字符串转换为Buffer let bufStr = Buffer.from(str) // 如何转换成字符串呢? let newStr = bufStr.toString() console.log(bufStr) // console.log(newStr) // Hello World
老的办法,Buffer构造函数的形式,不举荐应用,官网说行将废除
// 创立一个10个字节的Buffer let buf = new Buffer(10)
新的形式一:alloc
// 创立一个10个字节的Buffer let buf = Buffer.alloc(10) buf[0] = 66 buf[1] = 255 buf[2] = 0xaa // 这些写法是间接赋值一个16进制的数据,16进制的数据,就是`0x`结尾 console.log(buf) console.log(buff[2]) // 后果是170,为什么不是aa呢?因为只有数字在控制台或页面中输入,肯定是10进制
新的形式二:allocUnsafe
// 创立一个10个字节的Buffer // 和alloc根本一样,只是allocUnsafe创立的Buffer中可能会含有敏感数据 // 什么意思呢?alloc在创立的时候,会清空那一块内存,而allocUnsafe不会清空,也就是说之前的数据,可能会泄露进去 // 既然如此,为什么还要allocUnsafe呢?因为allocUnsafe的效率更高,然而咱们失常来说还是应用alloc let buf = Buffer.allocUnsafe(10) console.log(buf)