当前位置:  开发笔记 > 编程语言 > 正文

setInterval with Infinity

如何解决《setIntervalwithInfinity》经验,为你挑选了1个好方法。

所以,如果我在做:

setInterval(function(){

   console.log("1");

},Infinity);

它继续记录1,好像它是一个for loop.为什么会这样?



1> 小智..:

当float/number Infinity需要在JavaScript中转换为32位整数值时,就像setTimeout一样,它被转换为零:

console.log(typeof Infinity); // number
console.log(Infinity | 0);    // 0

ECMA-262 6e第7.1.5节 ToInt32 ( argument )

抽象操作ToInt32转换argument为-2 31到2 31 -1 范围内的2 32个整数值之一.这个抽象操作的功能如下:

    让数字为ToNumber(argument).

    ReturnIfAbrupt(number).

    如果number为NaN,+ 0,-0,+∞或-∞,则返回+0.

    [...]

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有