- 函数声明里的参数叫形参,函数调用里的参数叫实参。
- Javascript函数定义不指定形参的类型,函数调用也不对实参做任何类型检查,甚至不检查参数个数。
可选形参
当函数调用的实参比声明的个数少的时候,后面剩下的形参传入默认值undefined。
- 一般在函数体内对可以省略的参数进行判断,如果是undefined则赋一个合理的默认值。
- 可省略参数必须放在最后面
function say(name,words)
{
words = words||'Hello'
console.log(name + ' says:' + words)
}
say('Mike')
//Mike says:Hello
可变长的实参列表:实参对象
当调用函数的时候传入的实参个数超过函数定义时的形参个数时,可以通过参数对象arguments引用,它是一个类数组对象,可以通过下标访问参数。
- arguments不只包括未定义名称的参数,还包括有名称的参数
- 函数可以不定义参数,直接使用arguments获取所有参数,这种函数叫做不定义实参函数
function max()
{
var m = arguments[0]
for(var i=0;i<arguments.length;i++)
{
if(m<arguments[i])
{
m = arguments[i]
}
}
return m
}
max(3,5,9,2,11)
// 11
max('a','d','f','b')
// "f"