javascript - 为什么缓冲区复制会打印一些垃圾值?

标签 javascript node.js

我是 Node.js 新手,

我正在阅读 Node.js 缓冲区。

我偶然发现了 buffer.copy 方法。

编写了如下代码,

var bufferOne = new Buffer("This is China");
var bufferTwo = new Buffer(20),
   startTarget = 0,
   sourceStart = 8,
   sourceEnd = 0;
var bufferLength = bufferOne.length;
sourceEnd = bufferLength;
console.log("Buffer length "+bufferLength);
bufferOne.copy(bufferTwo,startTarget,sourceStart,sourceEnd);

console.log("Buffer1 "+bufferOne.toString());   
console.log("Buffer2 "+bufferTwo.toString());

输出如下,

Buffer length 13
Buffer1 This is China
Buffer2 China

但有时它也会在“China”之后打印垃圾输出,如下,

Buffer length 13
Buffer1 This is China
Buffer2 China���*�

有时,

Buffer length 13
Buffer1 This is China
Buffer2 China���

有人可以告诉我发生了什么事吗?

最佳答案

bufferTwo 的长度是 20,但您只复制 13 个字节。其余 7 个字节包含半随机数据。

记录here :

Passing a number as the first argument to Buffer() (e.g. new Buffer(10)), allocates a new Buffer object of the specified size. The memory allocated for such Buffer instances is not initialized and can contain sensitive data.

关于javascript - 为什么缓冲区复制会打印一些垃圾值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40258524/

相关文章:

javascript - "CALL "C :\Program Files\nodejs\\node. exe“错误

javascript - 使用 ngCsv 和 AngularJS 将 moment() 对象解析为文件名

javascript - 分页表时 Google Charts API 出现问题

javascript - 由多个图像文件组成的响应式 map

php - 如何从 localhost(laravel、nodejs)调用 localhost?

javascript - Twitter 媒体更新状态

node.js - 如何测试Node + Postgres的速度

javascript从div复制文本到输入

javascript - forEach 循环中的异步函数和回调

javascript - 为浏览器和 nodejs 构建