以下两个程序将整数4294967173(-123的补码)写入到Typed Array中,然后再读取Typed Array,期望程序的输出两次-123
(1) 程序1
var arrayBuffer = new ArrayBuffer(8);
var array = new Int8Array(arrayBuffer);
array[0] = 4294967173;
console.log(array[0]);
array[0] = 4294967173;
console.log(array[0]);
程序输出为:
-123
-123
(2) 程序2
var arrayBuffer = new ArrayBuffer(8);
var array = new Int8Array(arrayBuffer);
for (var i = 0; i < 2; i++) {
array[0] = 4294967173;
console.log(array[0]);
}
程序输出为:
-123
0
程序1和程序2的逻辑是等价的,为什么程序2的第二次输出是0,这算是node.js的bug吗?我使用的nodejs和linux的版本如下:
$ node -v
v0.6.12
$ uname -v
#25~precise1-Ubuntu SMP Thu Jan 30 17:42:40 UTC 2014