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