js递归函数中的执行顺序问题

js递归函数中的执行顺序问题_第1张图片

首先输出的a5、a4、a3应该不难理解,主要是最后两个个输出的执行顺序很容易乱套。

我们知道js是单线程,并且有一个堆栈的概念,函数的执行是放到栈里执行的,abc(--num)入栈顺序应该是abc(4)>abc(3),根据‘后入先出’的概念(栈就好像垃圾桶,入栈就是往垃圾桶扔垃圾,出栈就是倒垃圾),首先执行的应该是abc(3),所以先输出b3,再输出b4。

画个草图,这个是入栈的过程

js递归函数中的执行顺序问题_第2张图片

 

你可能感兴趣的:(javascript,javascript)