本篇文章帶大家深入了解下Node中 Buffer(緩沖區(qū))類,希望對(duì)大家有所幫助!
node.js極速入門課程:進(jìn)入學(xué)習(xí)
在TypedArray出來(lái)之前,JavaScript這門語(yǔ)言是不能很好地處理原始二進(jìn)制數(shù)據(jù)(raw binary data)的,這是因?yàn)橐婚_(kāi)始的時(shí)候JavaScript主要還是應(yīng)用在瀏覽器中作為腳本語(yǔ)言使用,所以需要處理原生二進(jìn)制數(shù)據(jù)的場(chǎng)景是少之又少。而Node出來(lái)后,由于服務(wù)端的應(yīng)用需要處理大量的二進(jìn)制流例如文件讀寫,TCP連接等,所以Node在JavaScript(V8)之外,定義了一種新的數(shù)據(jù)類型Buffer。由于Buffer在Node應(yīng)用中使用十分廣泛,所以只有真正掌握了它的用法,你才能寫出更好的Node應(yīng)用?!鞠嚓P(guān)教程推薦:nodejs視頻教程、編程教學(xué)】
二進(jìn)制基礎(chǔ)
在正式介紹Buffer的具體用法之前,我們先來(lái)簡(jiǎn)單回顧一下有關(guān)二進(jìn)制的知識(shí)。
身為程序員,我們應(yīng)該都不會(huì)對(duì)二進(jìn)制感到陌生,因?yàn)?strong>計(jì)算機(jī)所有的數(shù)據(jù)底層都是以二進(jìn)制(binary)的格式儲(chǔ)存的。換句話來(lái)說(shuō)你電腦里面的文件,不管是純文本還是圖片還是視頻,在計(jì)算機(jī)的硬盤里面都是由01這兩個(gè)數(shù)字組成的。在計(jì)算機(jī)科學(xué)中我們把0或者1單個(gè)數(shù)字叫做一個(gè)比特(bit),8個(gè)比特可以組成一個(gè)字節(jié)(byte)。十進(jìn)制(decimal)數(shù)字16如果用1個(gè)字節(jié)來(lái)表示的話,底層存儲(chǔ)結(jié)構(gòu)是:我們可以看到16用二進(jìn)制表示的話相比于十進(jìn)制的表示一下子多了6位數(shù)字,如果數(shù)字再大點(diǎn)的話二進(jìn)制的位數(shù)會(huì)