Это почти всегда было так. Нулевая память добавляет накладные расходы, поэтому, когда вы создаете новый буфер, вы видите содержимое того, что содержалось в нем.
Если вам нужно/хочу обнулить буфер, просто сделать buffer.fill(0);
UPDATE:
С узла v6.0.0 Buffer creation API изменилось. Теперь вы можете прямо выделить нулевое заполнение через Buffer.alloc(size)
и получить старое поведение через Buffer.allocUnsafe(size)
. Эти новые API-интерфейсы Buffer
также были переданы в v4x версии v4.5.0. Создание стиля создания буфера new Buffer()
считается устаревшим и будет удалено в будущей основной версии (возможно, v8.0.0 в самое ближайшее время, если бы мне пришлось угадать, чтобы обеспечить жесткий цикл устаревания).
Кроме того, поскольку узел v5.10.0 (и v4.5.0 для ветви v4.x), вы можете передать аргумент --zero-fill-buffers
двоичному элементу узла, который будет молча и автоматически заполнять все буферы после создания.
Я предполагаю, что мы не должны брать что-либо из буфера, прежде чем мы что-то в него вносим, поэтому nodejs просто не пустят его для нас (так как это требует дополнительного времени для перезаписи данных в буфере)? – fuyushimoya