• setTimeout 为0的作用


    js是单线程,你得setTimeout函数虽然时间设置为0,但是也是一个异步,他会在任务池中排队等待js引擎空闲才执行.

    js的执行是单线程的,都需要排队去执行的,循环在一瞬间就完成了,即使时间是0,也是在排队。除非你用闭包去解决这个问题,就可以一次输出你想要的了

     

    跟js的执行机制有关,js是单线程的,同一时间只能做一件事,通过事件轮询实现异步的执行,直接调用函数变量之类同步执行会进入到执行栈中,按顺序执行,所有的异步执行,则会放入执行队列,在回调接到相应后,插入到执行栈中执行。
    setTimeout是个异步执行的回调,在执行队列中,所以会等所有的for循环任务栈结束后再执行,设置的时间代表当回调执行时,等待多长时间后执行,而不是js解析器读到这段代码,等待多长时间执行,所以有时候还会感觉执行时间比给定的时间长。

    返回值就像上面所说的是定时器编号,所以一般使用定时器,都会给予一个命名,方便以后清除定时器。

    https://segmentfault.com/q/1010000010351840

     
  • 相关阅读:
    寒假学习第九天
    寒假学习第八天
    寒假学习第七天
    寒假学习第六天
    寒假学习第五天
    寒假学习第四天
    寒假学习第三天
    寒假学习第二天
    寒假学习第一天
    阅读笔记
  • 原文地址:https://www.cnblogs.com/yhl-0822/p/9835588.html
Copyright © 2020-2023  润新知