当我们在JavaScript中定义一个函数时,函数名上有一个属性length,它用来获取函数定义时的形参个数。这个length属性可以作为函数的一个属性被调用。
与之相似的,我们可以使用arguments.length来获取函数调用时实际传入参数的个数。下面将对这两者的用法进行详细的讲解,同时提供相应的示例。
Javascript中函数名.length属性
声明函数时,可以添加形参列表,函数名.length属性返回形参的个数。
示例1:普通函数
function myFunction(a, b, c) {
return a + b + c;
}
console.log(myFunction.length); //输出3
在上面的代码中,将一个包含三个参数的函数命名为myFunction
。属性长度(length)返回的是参数数量。在上面的示例中,length返回3,也就是参数的个数。
示例2:使用默认参数
function myFunction(a, b=2, c=3) {
return a + b + c;
}
console.log(myFunction.length); // 输出1
在上面的代码中,将一个包含三个参数的函数命名为myFunction
, 但是其中有两个参数设置了默认值。属性长度(length)返回的是参数数量,不包含有默认值的参数。在上面的示例中,函数的参数长度是1。
arguments.length
arguments.length
是函数内部可用的一个特殊对象,它返回函数调用时实际传入参数的个数。
示例1:
function myFunction() {
console.log("arguments.length:", arguments.length);
}
myFunction(); // 0
myFunction(1); // 1
myFunction(1, 2); // 2
myFunction(1, 2, 3); // 3
在上面的示例中, myFunction()
不带参数返回0, myFunction(1)
返回1, myFunction(1, 2)
和 myFunction(1, 2, 3)
分别返回2和3。
示例2:
function sum() {
let result = 0;
for (let i = 0; i < arguments.length; i++) {
result += arguments[i];
}
return result;
}
console.log(sum(1, 2, 3, 4)); // 输出10
在上面的代码中,我们定义了一个求和函数sum,通过arguments.length来动态计算传入参数个数,便于函数的通用性和高度的可扩展性。
总结:
length
属性用来返回函数定义时的形参个数,arguments.length
用来返回函数调用时实际传入参数的个数,它们的区别在于 length
只取得形参数量,不包括有默认参数的数量,而 arguments.length
取得的是函数调用时实际传递的参数数量。无论是在函数定义还是调用时,这两个属性都具有重要的作用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript中函数名.length属性用法分析(对比arguments.length) - Python技术站