for(var i=0;i<6;i++){ setTimeout("console.log(i)",0); } //6,6,6
知识点
定义任务函数:function task(){.......}
启动定时器: timer=setTimeout(task,wait);//任务函数,等待时间
停止定时器: 停止等待 clearTimeout(timer);
原理: 1. 启动定时器时: js引擎将定时器的任务函数和间隔时间,添加到定时器中等待被调用,同时为该任务生成唯一的序号。
2. 定时器会遍历每个任务,按照时间间隔,自动调用到时间的函数。
3. 定时器并没有直接调用函数,而是将函数调用加入一个回调队列(callback queue)。
4. 回调对列中的函数,必须等到主程序(ECS)中执行完了才能执行。所以要等for循环结束,i=6后才开始执行
setInterval/setTimeout的第一个参数,可以是一个字符串格式的js语句。
时间: 2024-12-29 12:16:45