es5写法:

function fun1(a,b,c){
return a+b+c;
}
documment.write(fun1(1,2,3));
结果:6



function fun1(a,b,c){
return a+b+c;
}
documment.write(fun1(1,2));//只传俩个参数
结果:错




function fun1(a,b,c){
return a+b+c;
}
documment.write(fun1(1 , 2,3,4));//会默认找到前三个
结果:6



结论:函数可以多传,但不能少传



function fun1(a,b,c){
 c=c||5  ;            //用或字符(||),如果传入有参数则c就等于c,传入没有参数则c等于3
 return a+b+c;
}
documment.write(fun1(1,2));
结果6
-------------------------------------------------------

es6写法

function fun2(a=1,b=2,c=3){
 return a+b+c;
}
documment.write(fun1());//一个参数不传,
结果:6


function fun2(a=1,b=2,c=3){
 return a+b+c;
}
documment.write(fun1(5));//传入第一个值,a=5取代a=1
结果:10     


function fun2(a=1,b=2,c=3){
 return a+b+c;
}
documment.write(fun1(5,6));//传入第一个值,a=5取代a=1,第二个值b=6取代b=2

结果:14
结论:当没有传递参数值时,就按默认的参数的值来执行,当有参数传递时会取代默认值,参数的值不一定是数,还可以是函数

------------------------------------------------------

function fun3(a=1,b=2,c=ride(2)){
 return a+b+c;
}

function ride(val){
return val*5;
}

documment.write(fun3(5,6));
结果:21
结论:参数的默认值也可以是函数

更多推荐