JS中函数的length以及arguments的length如何得到?

function a(x,y){}
a.length // 2
 
function b(x,y=2,z){}
b.length // 1
 
function c(x,...args){}
c.length //1
length 是JS函数对象的一个属性值,该值是指 “该函数有多少个必须要传入的参数”,即形参的个数
形参的数量不包括剩余参数个数,仅包括 “第一个具有默认值之前的参数个数”

在没有默认值时,fn.length指的是形参的个数,如果有参数有默认值,那么就取第一个具有默认值之前的参数的个数。

函数的实参个数应该怎么获取?
arguments.length //在函数内部使用,表示实际传入的参数个数,在运行时计算,和形参个数无关

  例子:

function a(x,y,z){
   console.log(arguments.length); // 3
}(1,2,3)
 
function b(x,y=2){
    console.log(arguments.length) // 3
}(1,2,3)
 
 
function c(x,y=2){
    console.log(arguments.length) // 1

}

  总结来说就是:function.length  获取的是形参的长度   而在函数内部定义的argument.length 获取的是 实参的长度

猜你喜欢

转载自www.cnblogs.com/cxdong/p/11429445.html