使用Typed Array遇到的问题,是node.js的bug还是javascript的未定义行为?
高洛峰
高洛峰 2017-04-10 14:47:14
[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
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号