iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0

Buffer 中文稱為 緩衝區
我自己理解起來懶人包解釋大概是這樣
切出一個空間,當他儲存滿的時候,讓他做事,例如一個1GB的檔案一次送出去,很可能容量會爆炸,但如果我把他切成10等份,一份一份切出去,這樣就沒問題了
傳輸方式則是二進制的方式傳輸

很適合在串流的時候使用,例如我們在看Youtube影片,你不用等到影片全部加載完畢,才可以觀看,而是一邊觀看,一邊讀取

Buffer 在傳輸資料的時候是使用二進制,所以傳輸的速度也相當快
但在資料呈現的時候通常是用十六進制呈現,比較方便人類閱讀,畢竟一堆00111人類好像看不懂齁XD

這邊舉一些小例子給大家看一下

//括號填入byte 1byte = 8bits  12*8=96
let buffer2 = new ArrayBuffer(12)  
//Int32 以32bits為一組, 96bits可切成三組
let view = new Int32Array(buffer2)  
view[0] = 10
view[1] = 15
view[2] = 20
console.log(view)//輸出 Int32Array(3) [ 10, 15, 20 ]
view[3] = 35
//輸出  Int32Array(3) [ 10, 15, 20 ] 
//因為只切成三等份 故view[3] 不會進入 但是view[3]依然存在
console.log(view)

//===== 
let buffer4 = Buffer.from([18, 10, 15]);
//內部其實是二進制轉換 但印出來為了方便觀看 會轉成十六進制 ->輸出<Buffer 12 0a 0f>
console.log(buffer4);
//====
let buffer5 = Buffer.from([105, 108, 111, 118, 101, 121, 111, 117]);
//toString預設為utf-8的轉換 ->輸出 iloveyou
console.log(buffer5.toString()); 

但Buffer其實還有很多功能,有些東西我也還摸不太清楚,不過這個簡單的例子,應該可以幫助大家初步理解


上一篇
第一天 node.js安裝環境
下一篇
第三天 fs模塊是什麼
系列文
Node.js隨手札記 想到什麼就說什麼的30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言