function foo() {
console.log(`你好`);
foo()
}
foo()
-
函数不调用不执行,调用之后才执行,按顺序执行---->>>调用!,再执行内部,执行到调用自己时,会一直重复调用当前这个函数,函数内部没写停止条件的话,会导致死循环(卡死浏览器)!*
function fun(a) { if (a === 1) { return 1; } else { return (a + fun(a - 1)) } } console.log(fun(2)) console.log(fun(3)) console.log(fun(4)) console.log(fun(5)) console.log(fun(6))利用函数递归来干活,当前函数的结果是怎么来的...
当2传进去的时候,以上条件都不符合它,往下走,代入=2+fun(2-1),fun调用自己了,这时候是重点,fun(1)把这个1再传给自己,然后遇到了第一个条件,被return弹回了1,所以2+(2-1)=3
当3传进去的时候,以上条件都不符合它,往下走,代入=3+fun(3-1),fun再调用自己了,这时候是重点,fun(2)把这个2再传给自己,第一条件不符合它往下走,(2-1),fun再调用自己了,这时候是重点,fun(1)把这个1再传给自己,然后遇到了第一个,return弹回了1,所以3+(3-1)+(2-1)=6
当4传进去的时候,以上条件都不符合它,往下走,代入=4+fun(4-1),fun调用自己了,这时候是重点,fun(3)把这个3再传给自己,第一条件不符合它往下走,(3-1),fun调用自己了,这时候是重点,fun(2)把这个2再传给自己,第一条件不符合它往下走,(2-1),fun调用自己了,这时候是重点,fun(1)把这个1再传给自己,然后遇到了第一个条件,被return弹回了1,所以4+(4-1)+(3-1)+(2-1)=10
......