js作为一个脚本语言,其用途就是与用户互动,操作DOM,所以从诞生之初就决定了它只能是单线程的,也就成了它的一大特点,也就意味着执行任务需要排队执行,当前任务执行完毕才能开始执行下一个任务
js中任务分为同步任务和异步任务,同步任务是指进入主线程中排队执行的任务,异步任务指的是进入任务队列(事件队列)排队执行的任务,只有主线程中的任务执行完毕后才会调用任务队列的任务,并且遵循先进先出的原则,这也是js运行的机制,而这个过程不断循环被称为事件循环
上面这段代码会输出什么呢?如果我们没有了解js的运行机制,就会猜想:500ms输出3,1000ms后输出4,然后输出1,2000ms后输出2
3,此时主线程执行完毕,立刻依次执行timer1和timer2输出3、4几乎同时输出
用来设置延时,有两个函数:setTimeout指定某个函数或代码在多少毫秒之后执行,clearTimeout是返回一个整数,表示这个定时器的编号,以后可以用来取消这个定时器
设置间隔,澳门新葡亰518网址setInterval指定代码会函数每隔多少毫秒执行一次,clearInterval返回一个整数,代表编号,可以用来取消定时器,用法跟上面一样的