學習到的一點Buffer

今天學習到的buffer是找到的視頻,覺得將的挺有意思的呢
在Node.js中,js文件,可以直接通過node js文件的形式運行的
buffer爲什麼叫緩衝區呢,因爲nodejs作爲服務器。1.接受用戶發過來的請求,2.給數據返回響應
1.請求全部否是二進制數據,存在buffer中
2.把一些數據發送給用戶的時候,會把數據轉成二進制數據,也是存在緩衝區
buffer的結構和數組很像,操作的方法也和數組類似,但是數組不能存儲圖片,不能存儲mp3,不能存儲二進制的文件
buffer彌補數組不足,Buffer就是專門用來存儲二進制數據,使用buffer不需要引入模塊,直接使用即可
二進制數據在顯示時都是以16進制的形式顯示的 buffer中最小是00,最大是ff 0-255
Buffer的大小一旦確定,則不能修改,Buffer實際上是對底層內存的直接操作
buffer中的一個元素,佔用內存的一個字節
計算器中一個0或一個1 我們稱爲1位(bit),

// 8bit == 1byte(字節) 
// 8bit=1byte(字節)
// 1024byte=1kb
// 1024kb=1mb
// 1024mb = 1gb
// 1024gb= 1tb
// buffer中的一個元素,佔用內存的一個字節
// 一個漢字3個字節

這下面的是在視頻學習中的源碼

// var str = 'hello world '
// var buf = Buffer.from(str)
// console.log(buf)
// console.log(buf.length)//佔用內存的大小
// console.log(str.length)//字符串的長度
// // 創建指定大小的Buffer
// var buf2 = new Buffer(1024)//1024字節的buffer 
// console.log('buf2.length',buf2.length)
// Buffer構造函數用法不推薦使用
// 創建一個10個字節的buffer
// alloc 分配
var buf2 = Buffer.alloc(10)
// 通過索引來操作buf中的元素
console.log(buf2)
buf2[0]=88
buf2[1]=255
buf2[2] = 0xaa
buf2[10]= 15

// Buffer的大小一旦確定,則不能修改,Buffer實際上是對底層內存的直接操作
// buf2[3] = 256
buf2[3]=255
// 只要數字在控制檯或頁面中輸出一定是10進制
console.log(buf2)
console.log('buf2[3]',buf2[2])
console.log('buf2[2]',buf2[2].toString(16)) //可以轉成16進制

// for(var i=0;i<buf2.length;i++){
//     console.log(buf2[i])
// }

// Buffer.allocUnsafe(size)創建一個指定大小的buffer,但是buffer中可能含有敏感數據

var buf3 = Buffer.allocUnsafe(10);
console.log(buf3)
// Buffer.from(str)將一個字符串轉換爲buffer
// Buffer.alloc(size)創建一個指定大小的Buffer
// Buffer.allocUnsafe(size) 創建一個指定大小的Buffer,但是可能包含敏感數據
// 緩衝區 buffer 
// buf.toString() 將緩衝區的數據轉換爲字符串
var buf4 = Buffer.from('我是一段文本數據')
console.log(buf4)
console.log(buf4.toString()) 



本文看自:尚硅谷node基礎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章