相关疑难解决方法(0)

JavaScript函数可以接受最大数量的参数吗?

我知道JavaScript函数可以接受"任意"数量的参数.

function f(){};
f(1,2,3,4 /*...*/);
Run Code Online (Sandbox Code Playgroud)

但我想知道实际上有多少"任何"可以限制?

比如说,让我说一百万个参数f().那会有用吗?或者翻译龙骨?

我猜测最大值是(a)特定于实现或(b)(2^32)-1,因为arguments对象是类似数组的.

我没有在语言规范中看到这一点,但我可能没有连接一些点.

javascript

64
推荐指数
3
解决办法
2万
查看次数

为什么应用太多参数抛出"超出最大调用堆栈大小"?

在Chrome和Node中,以下代码会引发错误:

function noop() {}
var a = new Array(1e6)
// Array[1000000]
noop.apply(null, a)
// Uncaught RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)

我理解为什么将100万个参数传递给一个函数可能是一个坏主意,但任何人都可以解释为什么错误Maximum call stack size exceeded而不是更相关的东西?

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

javascript function apply

7
推荐指数
1
解决办法
362
查看次数

标签 统计

javascript ×2

apply ×1

function ×1