js中异步和同步的区别

时光怂恿深爱的人放手 提交于 2020-02-16 10:38:21

执行环境:js的执行环境是单线程的,它一次只能执行一个任务,按照主线程里执行栈里任务的排列来执行。
同步任务:是按照主线程里执行栈里任务的排列来执行的。
异步任务:遇到异步任务,先不放入主线程,因为异步任务不知道什么时候才能获取结果,这样会影响页面正常显示。当异步任务执行后,进入阻塞状态,主线程会继续向下执行代码,当异步任务执行完成,把对应的回调函数封装成事件放入任务队列中,当主线程里的任务执行完毕,才去任务队列中找事件中的回调函数来执行,这些事件的回调函数都执行完后,相当于完成了一次事件循环。
同步和异步的区别:同步会阻塞后续代码的执行,异步不会阻塞后续代码的执行。
前端会用到异步的地方
1.setInterval 、 setTimeout

setInterval(function(){
	console.log("a")
}, 3000)
//每隔3秒会把回调函数封装成事件放入任务队列中

2.ajax请求

$.get("./data.json",(data)=>{
    console.log(data)
})
//当请求完成把回调函数封装成事件放入任务队列中

3.事件绑定

document.getElementById("btn").addEventListener("click",function(){})
//当鼠标点击该按钮,相当于该异步任务完成,把放入任务队列中。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!