Node.js Buffer

Сам язык JavaScript имеет только строковый тип данных и не имеет двоичного типа данных.

Класс Buffer в Node.js — это основной инструмент для работы с бинарными данными, обеспечивающий эффективные операции с бинарными данными.

Класс Buffer особенно полезен в таких сценариях, как файловые операции, сетевое взаимодействие и обработка изображений.

Возможности:

  • Бинарные данные:BufferОбъект представляет собой массив фиксированного размера, содержащий необработанные бинарные данные. Каждый элемент занимает один байт (8 бит), поэтомуBufferон подходит для обработки бинарных данных, таких как содержимое файлов, сетевые пакеты и т.д.
  • Неизменяемость: ХотяBufferсодержимое объекта может быть изменено после создания, его длина фиксирована и не может быть изменена динамически.

Buffer и кодировки символов

Экземпляры Buffer обычно используются для представления последовательностей закодированных символов, таких как UTF-8, UCS2, Base64 или данные в шестнадцатеричной кодировке. Используя явные кодировки символов, можно выполнять преобразование между экземплярами Buffer и обычными строками JavaScript.

Пример

const buf = Buffer.from('example', 'ascii');

// Выводит 72756e6f6f62
console.log(buf.toString('hex'));

// Выводит cnVub29i
console.log(buf.toString('base64'));

В настоящее время Node.js поддерживает следующие кодировки символов:

  • ascii- Поддерживаются только 7-битные данные ASCII. Эта кодировка очень быстрая, если старший бит удалён.

  • utf8- Unicode-символы, кодируемые как многобайтовые. Многие веб-страницы и другие форматы документов используют UTF-8.

  • utf16le- 2 или 4 байта, Unicode-символы в little-endian кодировке. Поддерживает суррогатные пары (от U+10000 до U+10FFFF).

  • ucs2 - utf16leПсевдоним .

  • base64- Кодировка Base64.

  • latin1- Способ дляBufferкодировать в однобайтовую строку.

  • binary - latin1Псевдоним .

  • hex- Кодирует каждый байт в два шестнадцатеричных символа.


Создание класса Buffer

Buffer предоставляет следующие API для создания класса Buffer:

  • Buffer.alloc(size[, fill[, encoding]]):Создаёт Buffer длиной size байт, что эквивалентно выделению size байт памяти, при этом значение каждого байта равно 0.
  • Buffer.allocUnsafe(size):Создаёт Buffer длиной size байт, но Buffer может содержать старые данные, что может повлиять на результат выполнения, отсюда и название unsafe.
  • Buffer.allocUnsafeSlow(size):Используется для выделения нового экземпляра Buffer заданного размера, но без его инициализации.
  • Buffer.from(array):Возвращает новый экземпляр Buffer, инициализированный значениями array (элементы переданного массива могут быть только числами, иначе они автоматически заменяются на 0).
  • Buffer.from(arrayBuffer[, byteOffset[, length]]):Возвращает только что созданный Buffer, который использует ту же память, что и заданный ArrayBuffer.
  • Buffer.from(buffer):Копирует данные переданного экземпляра Buffer и возвращает новый экземпляр Buffer.
  • Buffer.from(string[, encoding]):Создаёт Buffer из строки; можно указать кодировку, по умолчанию UTF-8.

Пример

// Создаёт Buffer длиной 10, заполненный 0.
const buf1 = Buffer.alloc(10);

// Создаёт Buffer длиной 10, заполненный 0x1.
const buf2 = Buffer.alloc(10, 1);

// Создаёт Buffer длиной 10, который не инициализирован.
// Этот метод быстрее, чем вызов Buffer.alloc(),
// но возвращённый экземпляр Buffer может содержать старые данные,
// поэтому его нужно переписать с помощью fill() или write().
const buf3 = Buffer.allocUnsafe(10);

// Создает буфер, содержащий [0x1, 0x2, 0x3].
const buf4 = Buffer.from([1, 2, 3]);

// Создает буфер, содержащий байты UTF-8 [0x74, 0xc3, 0xa9, 0x73, 0x74].
const buf5 = Buffer.from('tést');

// Создает буфер, содержащий байты Latin-1 [0x74, 0xe9, 0x73, 0x74].
const buf6 = Buffer.from('tést', 'latin1');

Запись в буфер

Синтаксис

Синтаксис записи в буфер Node выглядит следующим образом:

buf.write(string[, offset[, length]][, encoding])

Parameters

Параметры описываются следующим образом:

  • string- Строка, которую нужно записать в буфер.

  • offset- Значение индекса, с которого начинается запись в буфер, по умолчанию 0.

  • length— количество байтов для записи, по умолчанию — buffer.length.

  • encoding— используемая кодировка. По умолчанию 'utf8'.

Записывает строку в buf в позицию offset в соответствии с кодировкой символов encoding. Параметр length — это количество байтов для записи. Если в buf недостаточно места для размещения всей строки, будет записана только часть строки. Частично декодированные символы не будут записаны.

Возвращаемое значение

Возвращает фактически записанный размер. Если места в буфере недостаточно, будет записана только часть строки.

Пример

buf = Buffer.alloc(256);
len = buf.write("www.example.com");

console.log("写入字节数 : "+  len);

Выполните приведённый выше код, и результат вывода будет:

$node main.js
写入字节数 : 14

Чтение данных из Buffer

Синтаксис

Синтаксис чтения данных буфера Node выглядит следующим образом:

buf.toString([encoding[, start[, end]]])

Parameters

Параметры описываются следующим образом:

  • encoding— используемая кодировка. По умолчанию 'utf8'.

  • start— задаёт индекс позиции, с которой начинается чтение; по умолчанию 0.

  • end— конечная позиция, по умолчанию — конец буфера.

Возвращаемое значение

Декодирует данные буфера и возвращает строку, используя указанную кодировку.

Пример

buf = Buffer.alloc(26);
for (var i = 0 ; i < 26 ; i++) {
  buf[i] = i + 97;
}

console.log( buf.toString('ascii'));       // 输出: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString('ascii',0,5));   //使用 'ascii' 编码, 并输出: abcde
console.log( buf.toString('utf8',0,5));    // 使用 'utf8' 编码, 并输出: abcde
console.log( buf.toString(undefined,0,5)); // 使用默认的 'utf8' 编码, 并输出: abcde

Выполните приведённый выше код, и результат вывода будет:

$ node main.js
abcdefghijklmnopqrstuvwxyz
abcde
abcde
abcde

Преобразование Buffer в объект JSON

Синтаксис

Формат синтаксиса функции для преобразования Node Buffer в объект JSON выглядит следующим образом:

buf.toJSON()

При преобразовании экземпляра Buffer в строку,JSON.stringify()этот метод будет неявно вызван.toJSON()。

Возвращаемое значение

Возвращает объект JSON.

Пример

const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);

// 输出: {"type":"Buffer","data":[1,2,3,4,5]}
console.log(json);

const copy = JSON.parse(json, (key, value) => {
  return value && value.type === 'Buffer' ?
    Buffer.from(value.data) :
    value;
});

// 输出: <Buffer 01 02 03 04 05>
console.log(copy);

Выполните приведённый выше код, и результат вывода будет:

{"type":"Buffer","data":[1,2,3,4,5]}
<Buffer 01 02 03 04 05>

Конкатенация Buffer

Синтаксис

Синтаксис конкатенации буферов Node выглядит следующим образом:

Buffer.concat(list[, totalLength])

Parameters

Параметры описываются следующим образом:

  • list- Список-массив объектов Buffer, которые нужно объединить.

  • totalLength- Задает общую длину объединенного объекта Buffer.

Возвращаемое значение

Возвращает новый объект Buffer, сформированный путем конкатенации нескольких элементов.

Пример

var buffer1 = Buffer.from(('Example'));
var buffer2 = Buffer.from(('www.example.com'));
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log("buffer3 内容: " + buffer3.toString());

Выполните приведённый выше код, и результат вывода будет:

buffer3 内容: Examplewww.example.com

Сравнение Buffer

Синтаксис

Синтаксис функции для сравнения Buffer в Node выглядит следующим образом. Этот метод был представлен в Node.js v0.12.2:

buf.compare(otherBuffer);

Parameters

Параметры описываются следующим образом:

  • otherBuffer- сbufсравнивается другой объект Buffer.

Возвращаемое значение

Возвращает число, указывающее, располагается лиbufвotherBufferдо, после или на том же месте.

Пример

var buffer1 = Buffer.from('ABC');
var buffer2 = Buffer.from('ABCD');
var result = buffer1.compare(buffer2);

if(result < 0) {
   console.log(buffer1 + " 在 " + buffer2 + "之前");
}else if(result == 0){
   console.log(buffer1 + " 与 " + buffer2 + "相同");
}else {
   console.log(buffer1 + " 在 " + buffer2 + "之后");
}

Выполните приведённый выше код, и результат вывода будет:

ABC在ABCD之前

Копирование Buffer

Синтаксис

Синтаксис копирования буфера Node выглядит так:

buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

Parameters

Параметры описаны ниже:

  • targetBuffer- объект Buffer, который нужно скопировать.

  • targetStart- число, необязательный, по умолчанию: 0

  • sourceStart- число, необязательный, по умолчанию: 0

  • sourceEnd- число, необязательный, по умолчанию: buffer.length

Возвращаемое значение

Нет возвращаемого значения.

Пример

var buf1 = Buffer.from('abcdefghijkl');
var buf2 = Buffer.from('EXAMPLE');

//将 buf2 插入到 buf1 指定位置上
buf2.copy(buf1, 2);

console.log(buf1.toString());

Выполнение приведённого выше кода даёт следующий результат:

abEXAMPLEijkl

Срез буфера

Синтаксис среза буфера Node выглядит так:

buf.slice([start[, end]])

Parameters

Параметры описаны ниже:

  • start- число, необязательный, по умолчанию: 0

  • end- число, необязательный, по умолчанию: buffer.length

Возвращаемое значение

Возвращает новый буфер, который указывает на ту же память, что и старый буфер, но представляет собой срез от индекса start до end.

Пример

var buffer1 = Buffer.from('example');
// 剪切缓冲区
var buffer2 = buffer1.slice(0,2);
console.log("buffer2 content: " + buffer2.toString());

Выполнение приведённого выше кода даёт следующий результат:

buffer2 content: ru

Длина Buffer

Синтаксис

Синтаксис вычисления длины буфера Node следующий:

buf.length;

Возвращаемое значение

Возвращает длину памяти, занимаемой объектом Buffer.

Пример

var buffer = Buffer.from('www.example.com');
//  缓冲区长度
console.log("buffer length: " + buffer.length);

Выполнение приведённого выше кода даёт следующий результат:

buffer length: 14

Справочное руководство по методам

Ниже перечислены часто используемые методы модуля Buffer в Node.js (обратите внимание, что некоторые методы недоступны в старых версиях):

Нет.Метод и описание
1new Buffer(size)
Выделяет новый буфер размером size байт, где каждый байт состоит из 8 бит. Обратите внимание, что size должен быть меньше kMaxLength, иначе будет выброшено исключение RangeError.Устарело: вместо этого используйте Buffer.alloc() (или Buffer.allocUnsafe()).
2new Buffer(buffer)
Копирует данные из параметра buffer в экземпляр Buffer.Устарело: вместо этого используйте Buffer.from(buffer).
3new Buffer(str[, encoding])
Выделяет новый буфер, содержащий заданную строку str. Кодировка по умолчанию — 'utf8'.Устарело: вместо этого используйте Buffer.from(string[, encoding]).
4buf.length
Возвращает количество байтов в этом буфере. Обратите внимание, что это не обязательно размер содержимого в буфере. length — это объём памяти, выделенной для объекта Buffer, и он не изменяется при изменении содержимого объекта Buffer.
5buf.write(string[, offset[, length]][, encoding])
Записывает строковые данные в буфер в соответствии с параметром offset и указанной кодировкой. Значение offset по умолчанию равно 0, а кодировка по умолчанию — utf8. length — это размер в байтах записываемой строки. Возвращает число, указывающее, сколько 8-битных байтовых потоков было записано. Если в буфере недостаточно места для всей строки, будет записана только часть строки. Значение length по умолчанию равно buffer.length - offset. Этот метод не записывает частичные символы.
6buf.writeUIntLE(value, offset, byteLength[, noAssert])
Записывает value в буфер в соответствии с offset и byteLength. Поддерживает до 48-битных беззнаковых целых чисел, little-endian, например:
const buf = Buffer.allocUnsafe(6);

buf.writeUIntLE(0x1234567890ab, 0, 6);

// 输出: <Buffer ab 90 78 56 34 12>
console.log(buf);
Когда noAssert равен true, корректность value и offset больше не проверяется. По умолчанию false.
7buf.writeUIntBE(value, offset, byteLength[, noAssert])
Записывает value в буфер в соответствии с offset и byteLength. Поддерживает до 48-битных беззнаковых целых чисел, big-endian. Когда noAssert равен true, корректность value и offset больше не проверяется. По умолчанию false.
const buf = Buffer.allocUnsafe(6);

buf.writeUIntBE(0x1234567890ab, 0, 6);

// 输出: <Buffer 12 34 56 78 90 ab>
console.log(buf);
8buf.writeIntLE(value, offset, byteLength[, noAssert])
Записывает value в буфер в соответствии с offset и byteLength. Поддерживает до 48-битных знаковых целых чисел, little-endian. Когда noAssert равен true, корректность value и offset больше не проверяется. По умолчанию false.
9buf.writeIntBE(value, offset, byteLength[, noAssert])
Записывает value в буфер в соответствии с offset и byteLength. Поддерживает до 48-битных знаковых целых чисел, big-endian. Когда noAssert равен true, корректность value и offset больше не проверяется. По умолчанию false.
10buf.readUIntLE(offset, byteLength[, noAssert])
Поддерживает чтение беззнаковых чисел размером до 48 бит, little-endian. Когда noAssert имеет значение true, offset больше не проверяется на превышение длины буфера. По умолчанию — false.
11buf.readUIntBE(offset, byteLength[, noAssert])
Поддерживает чтение беззнаковых чисел размером до 48 бит, big-endian. Когда noAssert имеет значение true, offset больше не проверяется на превышение длины буфера. По умолчанию — false.
12buf.readIntLE(offset, byteLength[, noAssert])
Поддерживает чтение знаковых чисел размером до 48 бит, little-endian. Когда noAssert имеет значение true, offset больше не проверяется на превышение длины буфера. По умолчанию — false.
13buf.readIntBE(offset, byteLength[, noAssert])
Поддерживает чтение знаковых чисел размером до 48 бит, big-endian. Когда noAssert имеет значение true, offset больше не проверяется на превышение длины буфера. По умолчанию — false.
14buf.toString([encoding[, start[, end]]])
Возвращает декодированную строку в соответствии с параметром encoding (по умолчанию — 'utf8'). Также использует переданные параметры start (по умолчанию 0) и end (по умолчанию buffer.length) в качестве диапазона значений.
15buf.toJSON()
Преобразует экземпляр Buffer в объект JSON.
16buf[index]
Получает или задаёт указанный байт. Возвращаемое значение представляет байт, поэтому допустимый диапазон возвращаемого значения — от шестнадцатеричного 0x00 до 0xFF или от десятичного 0 до 255.
17buf.equals(otherBuffer)
Сравнивает, равны ли два буфера, возвращая true, если они равны, иначе false.
18buf.compare(otherBuffer)
Сравнивает два объекта Buffer и возвращает число, указывающее, находится ли buf до, после или совпадает с otherBuffer.
19buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])
Копирует буфер; источник и цель могут совпадать. targetStart — начальное смещение целевого буфера, и sourceStart — начальное смещение исходного буфера, оба по умолчанию равны 0. sourceEnd — конечное смещение источника, по умолчанию равно длине источника buffer.length.
20buf.slice([start[, end]])
Вырезает объект Buffer, обрезая индекс на основе смещений start (по умолчанию 0) и end (по умолчанию buffer.length). Отрицательные индексы вычисляются от конца буфера.
21buf.readUInt8(offset[, noAssert])
Читает беззнаковое 8-битное целое число по указанному смещению. Если параметр noAssert равен true, параметр offset не будет проверяться. В этом случае offset может выходить за конец буфера. По умолчанию false.
22buf.readUInt16LE(offset[, noAssert])
Читает беззнаковое 16-битное целое число по указанному смещению, используя специальный формат порядка байтов (endian). Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за конец буфера. По умолчанию false.
23buf.readUInt16BE(offset[, noAssert])
Читает беззнаковое 16-битное целое число по указанному смещению, используя специальный формат порядка байтов, big-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за конец буфера. По умолчанию false.
24buf.readUInt32LE(offset[, noAssert])
Читает беззнаковое 32-битное целое число по указанному смещению, используя указанный формат порядка байтов, little-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за конец буфера. По умолчанию false.
25buf.readUInt32BE(offset[, noAssert])
Читает беззнаковое 32-битное целое число по указанному смещению, используя указанный формат порядка байтов, big-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за конец буфера. По умолчанию false.
26buf.readInt8(offset[, noAssert])
Читает знаковое 8-битное целое число по указанному смещению. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за конец буфера. По умолчанию false.
27buf.readInt16LE(offset[, noAssert])
Читает знаковое 16-битное целое число по указанному смещению, используя специальный формат порядка байтов, little-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за конец буфера. По умолчанию false.
28buf.readInt16BE(offset[, noAssert])
Читает знаковое 16-битное целое число по указанному смещению, используя специальный формат порядка байтов, big-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за конец буфера. По умолчанию false.
29buf.readInt32LE(offset[, noAssert])
Читает знаковое 32-битное целое число из буфера по указанному смещению с использованием заданного порядка байтов, little-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за пределы буфера. Значение по умолчанию — false.
30buf.readInt32BE(offset[, noAssert])
Читает знаковое 32-битное целое число из буфера по указанному смещению с использованием заданного порядка байтов, big-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за пределы буфера. Значение по умолчанию — false.
31buf.readFloatLE(offset[, noAssert])
Читает 32-битное число с плавающей запятой из буфера по указанному смещению с использованием заданного порядка байтов, little-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за пределы буфера. Значение по умолчанию — false.
32buf.readFloatBE(offset[, noAssert])
Читает 32-битное число с плавающей запятой из буфера по указанному смещению с использованием заданного порядка байтов, big-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за пределы буфера. Значение по умолчанию — false.
33buf.readDoubleLE(offset[, noAssert])
Читает 64-битное число с плавающей запятой двойной точности из буфера по указанному смещению с использованием заданного порядка байтов, little-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за пределы буфера. Значение по умолчанию — false.
34buf.readDoubleBE(offset[, noAssert])
Читает 64-битное число с плавающей запятой двойной точности из буфера по указанному смещению с использованием заданного порядка байтов, big-endian. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что offset может выходить за пределы буфера. Значение по умолчанию — false.
35buf.writeUInt8(value, offset[, noAssert])
Записывает value в буфер по указанному offset. Примечание: value должно быть допустимым беззнаковым 8-битным целым числом. Если параметр noAssert равен true, параметр offset не будет проверяться. Это означает, что value может быть слишком большим, или offset может выходить за конец буфера, что приведёт к отбрасыванию value. Если вы не совсем уверены в этом параметре, не используйте его. По умолчанию — false.
36buf.writeUInt16LE(value, offset[, noAssert])
Записывает value в буфер по указанному offset в соответствии с указанным порядком байтов. Примечание: value должно быть допустимым беззнаковым 16-битным целым числом, little-endian. Если параметр noAssert равен true, параметры value и offset не будут проверяться. Это означает, что value может быть слишком большим, или offset может выходить за конец буфера, что приведёт к отбрасыванию value. Если вы не совсем уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
37buf.writeUInt16BE(value, offset[, noAssert])
Записывает value в буфер по указанному offset в соответствии с указанным порядком байтов. Примечание: value должно быть допустимым беззнаковым 16-битным целым числом, big-endian. Если параметр noAssert равен true, параметры value и offset не будут проверяться. Это означает, что value может быть слишком большим, или offset может выходить за конец буфера, что приведёт к отбрасыванию value. Если вы не совсем уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
38buf.writeUInt32LE(value, offset[, noAssert])
Записывает value в буфер по указанному offset в соответствии с указанным форматом порядка байтов (LITTLE-ENDIAN: little-endian). Примечание: value должно быть допустимым беззнаковым 32-битным целым числом, little-endian. Если параметр noAssert равен true, параметры value и offset не будут проверяться. Это означает, что value может быть слишком большим, или offset может выходить за конец буфера, что приведёт к отбрасыванию value. Если вы не совсем уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
39buf.writeUInt32BE(value, offset[, noAssert])
Записывает значение value в буфер по указанному смещению в соответствии с указанным порядком байтов (Big-Endian: от старшего байта к младшему). Примечание: значение value должно быть допустимым знаковым 32-битным целым числом. Если параметр noAssert имеет значение true, параметры value и offset не будут проверяться. Это означает, что значение value может быть слишком большим, или offset может выходить за конец буфера, из-за чего значение value будет отброшено. Если вы не совсем уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
40buf.writeInt8(value, offset[, noAssert])
41buf.writeInt16LE(value, offset[, noAssert])
Записывает значение value в буфер по указанному смещению в соответствии с указанным порядком байтов. Примечание: значение value должно быть допустимым знаковым 16-битным целым числом. Если параметр noAssert имеет значение true, параметры value и offset не будут проверяться. Это означает, что значение value может быть слишком большим, или offset может выходить за конец буфера, из-за чего значение value будет отброшено. Если вы не совсем уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
42buf.writeInt16BE(value, offset[, noAssert])
Записывает значение value в буфер по указанному смещению в соответствии с указанным порядком байтов. Примечание: значение value должно быть допустимым знаковым 16-битным целым числом. Если параметр noAssert имеет значение true, параметры value и offset не будут проверяться. Это означает, что значение value может быть слишком большим, или offset может выходить за конец буфера, из-за чего значение value будет отброшено. Если вы не совсем уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
43buf.writeInt32LE(value, offset[, noAssert])
Записывает значение value в буфер по указанному смещению в соответствии с указанным порядком байтов. Примечание: значение value должно быть допустимым знаковым 32-битным целым числом. Если параметр noAssert имеет значение true, параметры value и offset не будут проверяться. Это означает, что значение value может быть слишком большим, или offset может выходить за конец буфера, из-за чего значение value будет отброшено. Если вы не совсем уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
44buf.writeInt32BE(value, offset[, noAssert])
Записывает значение value в буфер по указанному смещению в соответствии с указанным порядком байтов. Примечание: значение value должно быть допустимым знаковым 32-битным целым числом. Если параметр noAssert имеет значение true, параметры value и offset не будут проверяться. Это означает, что значение value может быть слишком большим, или offset может выходить за конец буфера, из-за чего значение value будет отброшено. Если вы не совсем уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
45buf.writeFloatLE(value, offset[, noAssert])
Записывает value в буфер по указанному смещению в соответствии с указанным порядком байтов. Примечание: если value не является 32-битным значением типа float, результат будет неопределённым. Если параметр noAssert равен true, параметры value и offset не будут проверяться. Это означает, что value может быть слишком большим, или offset может выйти за пределы буфера, что приведёт к отбрасыванию value. Если вы не полностью уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
46buf.writeFloatBE(value, offset[, noAssert])
Записывает value в буфер по указанному смещению в соответствии с указанным порядком байтов. Примечание: если value не является 32-битным значением типа float, результат будет неопределённым. Если параметр noAssert равен true, параметры value и offset не будут проверяться. Это означает, что value может быть слишком большим, или offset может выйти за пределы буфера, что приведёт к отбрасыванию value. Если вы не полностью уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
47buf.writeDoubleLE(value, offset[, noAssert])
Записывает value в буфер по указанному смещению в соответствии с указанным порядком байтов. Примечание: value должно быть допустимым 64-битным значением типа double. Если параметр noAssert равен true, параметры value и offset не будут проверяться. Это означает, что value может быть слишком большим, или offset может выйти за пределы буфера, что приведёт к отбрасыванию value. Если вы не полностью уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
48buf.writeDoubleBE(value, offset[, noAssert])
Записывает value в буфер по указанному смещению в соответствии с указанным порядком байтов. Примечание: value должно быть допустимым 64-битным значением типа double. Если параметр noAssert равен true, параметры value и offset не будут проверяться. Это означает, что value может быть слишком большим, или offset может выйти за пределы буфера, что приведёт к отбрасыванию value. Если вы не полностью уверены в этих параметрах, старайтесь не использовать их. По умолчанию — false.
49buf.fill(value[, offset][, end])
Заполняет этот буфер указанным значением. Если offset (по умолчанию 0) и end (по умолчанию buffer.length) не указаны, будет заполнен весь буфер.
Другие расширения