javascript – 为什么应用太多参数抛出“超出最大调用堆栈大小”?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么应用太多参数抛出“超出最大调用堆栈大小”?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Chrome和Node中,以下代码会引发错误
function noop() {}
var a = new Array(1e6)
// Array[1000000]
noop.apply(null,a)
// Uncaught RangeError: Maximum call stack size exceeded

我理解为什么将100万个参数传递给一个函数可能是一个坏主意,但任何人都可以解释为什么错误是超出最大调用堆栈大小而不是更相关的东西?

(如果这看起来很无聊,原始案例是Math.max.apply(Math,lotsOfNumbers),这是从数组中获取最大数字的一种不合理的方式.)

解决方法

函数参数放在堆栈上.您试图将一百万个参数放入堆栈,这超过了最大堆栈大小.因此错误消息与错误原因非常相关.
原文链接:https://www.f2er.com/js/150130.html

猜你在找的JavaScript相关文章