递归:指调用自身的函数
重点:递归函数必须有可以终止递归调用的语句,否则会导致内存溢出
递归的性能不好,因为在递归终止前,JavaScript引擎会为每一次递归分配一块内存以存储栈帧,随着递归的深入,这个栈帧也越来越庞大,也就导致递归占用的内存越来越多,当传入factorial的数值增加到一定程度时,浏览器就会因为耗尽内存而抛出栈溢出的错误。
不要依赖于 浏览器抛出栈溢出的错误,不是所有的浏览器都会这样处理。
小例子 aaa替换为你自己起的内容。
let aaa= function bbb(num){
return num === 10 ? 10 : num * aaa(num+1);
}
aaa(5)