// 延时执行时间有最大值 2147483647
Chrome、Safari、Firefox 都是以 32 个 bit 来存储延时值的,32bit 最大只能存放的数字是 2147483647 毫秒,这就意味着,如果 setTimeout 设置的延迟值大于 2147483647 毫秒(大约 24.8 天)时就会溢出,这导致定时器会被立即执行
let startTime = Date.now()
function foo(){
const endTime = Date.now()
console.log('cost time',endTime - startTime)
console.log("test")
}
var timerID = setTimeout(foo,2147483648);//会被立即调用执行
// 每隔1秒执行一次,执行10次
function timer(timeout) {
let i = 0;
// let t;
time();
function time() {
if (i < timeout) {
console.log(i);
i++;
setTimeout(time, 1000);
} else {
return;
}
}
}
timer(10);