Javascript函数的参数
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘
函数的参数
对于参数值,JavaScript不会进行类型检查,任何类型的值都可以被传递给参数。
对于函数参数,如果过少,没得到值的参数值为undefined,如果过多,多的会被忽略掉。
//调用函数时传入的实际参数
functionadd(num1,num2){
returnnum1+num2;
}
//一切正常的调用方式
console.info(add(1,2));//3
//不检查参数的类型,字串和数字可以混用
console.info(add("1",2));//12
//多余参数被忽略
console.info(add(1,2,3));//3
//少的参数被视为undefined
//1+undefined=NaN
console.info(add(1));//NaN
检测参数是否缺失
判断是否为undefined
//检测参数是否缺失
functionsayHello(name,message){
if(typeofmessage==='undefined'){
message='你好!';
}
console.info(name+","+message);
}
sayHello("贾君鹏","你妈喊你吃饭");
sayHello("贾君鹏");//贾君鹏,你好!
保存参数的arguments对象
利用arguments对象,写出支持任意个参数的函数。arguments像是一个数组,但实际上不是数组,所以很多数组方法是不能用的。
//保存参数的arguments对象
functionsumNumbers(){
varresult=0;
for(vari=0;i<arguments.length;i++){
result+=arguments[i];
}
returnresult;
}
console.info(sumNumbers(1,2));//3
console.info(sumNumbers(1,2,3));//6
函数对象的length属性
arguments.length 函数接收的实参个数
函数名.length 函数定义的形参
//函数对象的length属性
functionsayName(name){
console.info(name);
}
functionsum(num1,num2){
returnnum1+num2;
}
functionsayHi(){
console.info("hi");
}
console.info(sayName.length);//1
console.info(sum.length);//2
console.info(sayHi.length);//0
作为参数的函数对象
函数是一个对象,可以作为另一个函数的参数
//作为参数的函数对象
functioncallSomeFunction(func,argu){
returnfunc(argu);
}
functiongetGreeting(name){
return"Hello,"+name;
}
varresult=callSomeFunction(getGreeting,"jxl");
console.info(result);//Hello,jxl
使用命名/匿名函数作为函数参数
varcallTwice=function(otherFunc){
otherFunc();
otherFunc();
};
callTwice(function(){
console.info("thisisafunction");
});
函数作为参数实例:
<script>
varbutton=document.getElementById('btnClick');
varresult=document.getElementById('result');
varclickCount=0;
button.addEventListener('click',function(){
clickCount++;
result.setAttribute('value',clickCount+':Hello,world!');
})
</script>
以上所述就是本文的全部内容了,希望大家能够喜欢。