递归函数执行顺序

递归函数执行顺序_第1张图片

 输出是5,4,3,2,2,3,4,5

有疑惑的地方在于,为什么输出2,3,4,5的时候没有执行第一个debugger,而是凭空进入了函数内部。执行·一半的函数的状态是怎样的。主要是理解执行栈后进先出的机制。正序最后压入执行栈的是rec(2),所以先执行rec(2)的上下文,所以输出2,然后弹出栈,执行上一级。

你可能感兴趣的:(JavaScript)