深入解析 JavaScript 函数的 length 属性与参数默认值的关系

2024-08-09 12:49:19 浏览数 (1)

在 JavaScript 中,函数的 length 属性表示函数定义时显式指定的、且从第一个没有默认值的参数的个数。

代码语言:javascript复制
function f0(a,b,c) {}
function f1(a,b=1,c=2) {}
function f2(a,b=1,c) {}
function f3(a,...args) {}
function f4(a=1,b) {}

console.log(f0.length);//3
console.log(f1.length);//1
console.log(f2.length);//1
console.log(f3.length);//1
console.log(f4.length);//0

对于 f0 函数:

  • 它明确指定了三个参数 abc,且都没有默认值。
  • 所以 f0.length 的值为 3

对于 f1 函数:

  • 虽然有三个参数,但只有 a 没有默认值,bc 都有默认值。
  • 因此 f1.length1

对于 f2 函数:

  • 从第一个没有默认值的参数,只有 a 没有默认值。
  • f2.length 也是 1

对于 f3 函数:

  • ...args 表示剩余参数,它不计入 length 的计算。
  • 只有第一个参数 a 没有默认值。
  • 所以 f3.length1

对于 f4 函数:

  • 从第一个没有默认值的参数开始算,第一个a 有默认值。
  • 所以 f4.length 应为 0

0 人点赞