js 函数参数个数问题

 1、调用函数时,如果参数多于定义时的个数,则多余的参数将会被忽略,如果少于定义时的个数则缺失的参数数会被自动赋予undefined值。

2、如果是用function语句声明的函数定义则不可以出现在循环或条件语句中,但是如果是用函数直接量方法的函数定义则可以出现在任何js表达式中。

3、arguments对象

    函数的arguments对象就像一个数组,里面保存着函数调用时的实际参数,可以用arguments[0]、arguments[1]、arguments[2]…等来引用这些参数,即使这些参数在定义函数时是没有的。但arguments并非真正的数组对象。

   function a(x,y){

            arguments[0]   //表示第一个参数x

            arguments[1]   //表示第一个参数y

            arguments[2]   //表示第三个参数,前提是在调用函数时传入了三个参数 

            …

            arguments.length   //表示实际传入参数的个数

            arguments.callee(x,y)   //调用自身 }

   arguments对象具有length属性,表示的是函数调用时实际传入的参数的个数。

   arguments对象还具有callee属性,用来引用当前正在执行的函数,这个在匿名函数中尤其有用。

4、函数的length属性(没错,函数也是具有length属性的)

    与arguments.length不同,函数的length属性表示的是在定义函数时的形参个数,而不是函数调用时的实际参数个数。可以用arguments.callee.length来调用函数的length属性。

你可能感兴趣的:(js,函数参数个数问题)