据我了解,虽然JS引擎是单线程执行程序的,但是浏览器是拥有多进程的,其中有类似于一个定时器进程来处理setTimeout()函数的,当setTimeout()到时间了,再把setTimeout()中的回调函数添加到任务队列中排队等待JS引擎在空闲的时候执行。所以我理解的setTimeout()中的这1s是加入到定时器进程中就开始计时倒数的(它应该是和JS引擎并行执行的倒计时),而不是像老师您在视频说的先把setTimeout()暂存起来,等轮到它执行的时候才开始倒数的。同理ajax等异步应该都有相应的浏览器进程作相应的处理。
这是我的个人理解,关于和您视频里讲的不同的理解带来的困惑,请老师解答下