Rus*_*nas 1 javascript integer-overflow
为什么浏览器挂起执行此操作?
for(var i= 9007199254740993;i<9007199254740994;i++) {
console.log(i);
}
Run Code Online (Sandbox Code Playgroud)
您尝试使用的整数大于2 ^ 53.JavaScript无法准确表示这些整数.让我们来看看控制台:
> var i = 9007199254740993;
undefined
> i++
9007199254740992
> i++
9007199254740992
> i++
9007199254740992
...
Run Code Online (Sandbox Code Playgroud)
如您所见,由于精度损失,值i不会改变,因此条件总是如此true,从而导致无限循环.
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |