JavaScript 规范确实定义了尾调用优化(Tail Call Optimization),但所有主流引擎(V8、SpiderMonkey、JavaScriptCore)目前都**未启用该特性**。Chrome 自 2017 年起移除了对 strict mode 下 TCO 的实验性支持,Firefox 也从未默认开启,Safari 则明确不支持。这意味着你写一个合法的尾递归函数,它依然会消耗调用栈空间,最终触发 RangeError: Maximum call stack size exceeded。
javascript中的递归是什么_如何避免栈溢出错误
递归需有明确终止条件(基础情况…