首先输出的a5、a4、a3应该不难理解,主要是最后两个个输出的执行顺序很容易乱套。
我们知道js是单线程,并且有一个堆栈的概念,函数的执行是放到栈里执行的,abc(--num)入栈顺序应该是abc(4)>abc(3),根据‘后入先出’的概念(栈就好像垃圾桶,入栈就是往垃圾桶扔垃圾,出栈就是倒垃圾),首先执行的应该是abc(3),所以先输出b3,再输出b4。
画个草图,这个是入栈的过程
首先输出的a5、a4、a3应该不难理解,主要是最后两个个输出的执行顺序很容易乱套。
我们知道js是单线程,并且有一个堆栈的概念,函数的执行是放到栈里执行的,abc(--num)入栈顺序应该是abc(4)>abc(3),根据‘后入先出’的概念(栈就好像垃圾桶,入栈就是往垃圾桶扔垃圾,出栈就是倒垃圾),首先执行的应该是abc(3),所以先输出b3,再输出b4。
画个草图,这个是入栈的过程