js中的同步和异步的理解

一个应用程序就是一个进程(当然有时候一个应用程序有多个进程),一个进程里面又分为很多个线程,线程是是程序执行流的最小单元,大家都知道,js是单线程的(就是在进程中只有一条线程,在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行。)

为什么js是单线程的:

JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

js的同步函数与异步函数

js中的同步函数:一条一条得执行,前面的执行完才能执行后面的
js中的异步函数:不是等待里面的函数执行,而是让下面的代码先执行,把这段代码加入到事件队列里面,等待同步的代码全部执行完毕然后再根据事件队列一步一步得执行
js在浏览器里面的运行原理:
众所周知,js是单线程的,所以同时只能做一件事,意思也就是同步的,但是可以配合浏览器API模拟出异步的操作,js是从上到下执行,碰到异步的代码先不执行,放置到事件队列中,等待同步代码执行完毕,浏览器api会不断得去监听事件队列里面的异步任务,每当队列中有异步代码的时候,不断去执行,这就是事件循环。

Last modification:September 18th, 2019 at 04:35 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment

One comment

  1. 二手vps

    ヾ(≧∇≦*)ゝ多谢大佬指点,刚好遇到这个问题!