求解释js递归

function foo(i) {
  if (i < 0)
  return;
  console.log('begin:' + i);
  foo(i - 1);
  console.log('end:' + i);
}
foo(3);

// begin:3
// begin:2
// begin:1
// begin:0
// end:0
// end:1
// end:2
// end:3

求帮忙解释这段代码的流程,本人太菜所以希望大神详细点。

阅读 6.9k
评论
    7 个回答
    function foo(i) {
        if (i < 0)
            return;
        console.log('begin:' + i);
        foo(i - 1);
        console.log('end:' + i);
    }

    //你把代码 拓展开成这样。。。

    foo(2) {
        console.log('begin:' + 2);
        foo(1){
            console.log('begin:' + 1);
            foo(0){
                console.log('begin:' + 0);
                foo(-1){
                    return
                }
                console.log('end:' + 0);
            }
            console.log('end:' + 1);
        }
        console.log('end:' + 2);
    }
    foo(3);
      相似问题
      推荐文章