По умолчанию Node.js работает с буферами, где используются API, которые могут быть потоками, если вы работаете со строками в JavaScript, они работают в Unicode (utf-8), и они могут работать с двоичными данными (например, изображение, видеофайл и т. д. c).
Простым примером разностных строк из буферов может быть сравнение размера строки UTF-8 в виде текста в кодировке Юникод (подсчет по символу) и буфера (подсчет byte):
> const str = 'Hello 世界';
undefined
> str.length
8
> const buf = Buffer.from(str, 'utf8');
undefined
> buf.length
12
> buf.toString('hex');
'48656c6c6f7720e4b896e7958c'
> buf.toString('utf8');
'Hello 世界'
Таким образом, это стандартная работа с буферами с такими API, как FS, Socket и др. c.