xb18
xb18
文章39
标签0
分类0
为什么babel编译会把递归转为while循环

为什么babel编译会把递归转为while循环

会带来性能的提升!

babel生成代码会把递归转换为while (1)循环,因此探究:

递归的优点:结构清晰,可读性强

递归的缺点:效率低,调用栈可能会溢出,函数每次调用都会在内存栈中分配空间,而每个进程的容量是有限的,当调用的层次太多时,就会超出栈的容量,从而导致溢出

循环不会创建新的执行环境,因此也不会形成闭包,每次迭代都是在同一个执行环境下,修改的只是相关变量,换言之循环空间复杂度的边际成本非常低

本文作者:xb18
本文链接:http://xb18.github.io/2023/11/28/%E9%80%92%E5%BD%92%E5%92%8Cwhile%E5%BE%AA%E7%8E%AF/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可