arguments.length

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

arguments.length 数据属性包含传递给函数的参数数量。

一个非负整数。

arguments.length 的属性特性
可写
可枚举
可配置

描述

arguments.length 属性提供了实际传递给函数的参数数量。这可能多于或少于定义的参数数量(请参阅 Function.prototype.length)。例如,对于下面的函数

js
function func1(a, b, c) {
  console.log(arguments.length);
}

func1.length 返回 3,因为 func1 声明了三个形式参数。然而,func1(1, 2, 3, 4, 5) 打印 5,因为 func1 是用五个参数调用的。类似地,func1(1) 打印 1,因为 func1 是用一个参数调用的。

示例

使用 arguments.length

在这个例子中,我们定义了一个可以把两个或更多数字相加的函数。

js
function adder(base /*, num1, …, numN */) {
  base = Number(base);
  for (let i = 1; i < arguments.length; i++) {
    base += Number(arguments[i]);
  }
  return base;
}

规范

规范
ECMAScript® 2026 语言规范
# sec-arguments-exotic-objects

浏览器兼容性

另见