Binario es simplemente un conjunto o una colección de `1` y `0` . Cada número en un binario, cada 1 y 0 en un conjunto se denominan _bit_ . La computadora convierte los datos a este formato binario para almacenar y realizar operaciones. Por ejemplo, los siguientes son cinco binarios diferentes:
`10, 01, 001, 1110, 00101011`
JavaScript no tiene datos de tipo byte en su API central. Para manejar datos binarios, Node.js incluye una implementación de búfer binario con un módulo global llamado `Buffer` .
### Creando un Buffer
Hay diferentes formas de crear un búfer en Node.js. Puede crear un búfer vacío con un tamaño de 10 bytes.
```javascript
const buf1 = Buffer.alloc(10);
```
A partir de cadenas codificadas en UTF-8, la creación es así:
```javascript
const buf2 = Buffer.from('Hello World!');
```
Hay diferentes codificaciones aceptadas al crear un Buffer:
Hay tres funciones distintas asignadas en la API de Buffer para usar y crear nuevos buffers. En los ejemplos anteriores hemos visto `alloc()` y `from()`. La tercera es `allocUnsafe()` .
Hay diferentes interacciones que se pueden hacer con la API de Buffer. Vamos a cubrir la mayoría de ellas aquí. Comencemos con la conversión de un búfer a JSON.
El JSON especifica que el tipo de objeto que se transforma es un búfer, y sus datos. Convertir un búfer vacío a JSON nos mostrará que no contiene más que ceros.
Tenga en cuenta que la API de búfer también proporciona una función directa a JSON `toJSON()` para convertir un búfer en un objeto JSON. Para examinar el tamaño de un búfer, podemos usar el método de `length` .
```javascript
emptyBuf.length;
// Output: 10
```
Ahora vamos a convertir el búfer en una cadena legible, en nuestro caso, el utf-8 codificado.
```javascript
console.log(bufferOne.toString('utf8'));
// Output: This is a buffer example.
```
`.toString()` convierte de forma predeterminada un búfer a una cadena de formato utf-8. Así es como se decodifica un búfer. Si especifica una codificación, puede convertir el búfer a otra codificación.