同步模式(Synchronous)

概念:
代码中的任务依次排队执行,执行顺序与代码的编写顺序是完全一致的。在单线程下大多数任务都会以同步模式去执行
执行讲解:
例:

console.log('begin')   
function A(){
	console.log('A task')
}
function B(){
	console.log('B task')
	A()
}
B()
cosnole.log('end')

1、js执行引擎会把整体的代码全部加载进来
2、然后在调用栈(Call stack)当中压入一个匿名(anonymous)的调用,这个匿名的调用可以理解为把全部的代码放入到一个匿名的函数当中去执行,然后去逐行执行
3、调用栈中依次压入上述代码去执行,调用栈中:
(anonymous) 逐行执行
console.log(‘begin’) 执行 弹出
B() 执行
console.log(‘B task’) 执行 弹出
A()执行
console.log(‘A task’) 执行 弹出
A()弹出
B()弹出
cosnole.log(‘end’) 执行 弹出
(anonymous) 弹出
调用栈的理解
调用栈只是一个更专业的说法,通俗的解释是,js在执行引擎中维护了一个正在执行的工作表,当工作表中的所有任务被清空完后,这一轮的工作就结束了

问题:如果某一任务执行时间过长,后面的任务就要延迟(阻塞),一直等待,这种阻塞对用户来说,界面就会卡顿或者卡死,这就必须要异步任务来解决程序中无法避免的耗时操作,例如ajax,node.js中的大文件读写等避免代码被卡死

你可能感兴趣的:(笔记)