使用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
阅读 4.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题