首页 > 使用Typed Array遇到的问题,是node.js的bug还是javascript的未定义行为?

使用Typed Array遇到的问题,是node.js的bug还是javascript的未定义行为?

以下两个程序将整数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
【热门文章】
【热门文章】