JavaScript中的fn.length和arguments.length有什么不同?

2 min read

fn.length 是函数声明时定义的参数个数,而 arguments.length 是函数被调用时实际传递的参数个数。

例如,下面这个函数声明时定义了两个参数:

function add(num1, num2) {
  return num1 + num2;
}

add.length 的值为 2。无论传递的参数个数是多少,add.length 总是等于 2。

而当调用函数 add(1, 2, 3) 时,arguments.length 的值为 3,因为实际传递了三个参数给函数 add