用於處理二進制的數據。Buffer():用於操做二進制數據javascript
javascript 字符串是以utf-8的編碼存儲的,處理二進制的能力很弱。而網絡層對於不一樣資源的請求,響應,甚至是文件 都是以二進制的形式交互的。html
http://javascript.ruanyifeng.com/nodejs/buffer.htmljava
Buffer
對象是Node處理二進制數據的一個接口。它是Node原生提供的全局對象,能夠直接使用,不須要require('buffer')
。node
JavaScript比較擅長處理字符串,對於處理二進制數據(好比TCP數據流),就不太擅長。Buffer
對象就是爲了解決這個問題而設計的。它是一個構造函數,生成的實例表明了V8引擎分配的一段內存,是一個相似數組的對象,成員都爲0到255的整數值,即一個8位的字節。數組
Buffer
對象與字符串的互相轉換,須要指定編碼格式。目前,Buffer對象支持如下編碼格式。網絡
流是以buffer的形式存在,這樣更高效。函數
stream是基於事件機制工做的。流在各個階段的狀態 均可以被監聽到。ui