栈-数据结构(LIFO-last in first out)
定义
栈——是一种遵循先进后出的有序集合,新添加和待删除的元素都放在栈顶,另一端则为栈底。
函数调用栈
定义
例子
var a =2;
function add(b,c){
return b + c;
}
function addAll(b,c){
var result = add(b,c)
return result
}
addAll(3,6);
上述代码,在addAll函数中调用了add函数,下面分析调用栈的过程:
第一步,创建全局执行上下文,并将其压入栈底,执行环境入栈后,js引擎开始执行代码。
第二步,执行到addAll函数时,会创建一个执行上下文,并将执行环境压入栈中,并开始执行函数中的代码
第三步,执行到add函数时,又创建一个执行上下文,并将环境压入栈中,并执行函数中的代码,
第四步,执行函数add中的代码时,执行到return后,就会将add换数的执行环境从调用栈的顶部弹出,并返回