同名参数
如果有同名参数,会取最后那个的值(避免同名参数);
//同名参数
function fn(n,n){
console.log(n);
}
fn(5,7); //7
fn(1); //undefined
默认参数
ES6允许直接给参数设置默认值;
注意:不能在函数内对参数再次进行let或者const的声明;
//默认值
function fn1(str){
var str=str||'黄小腿';
console.log(str);
}
fn1('黄大腿'); //黄大腿
fn1(); //黄小腿
fn1(0); //黄小腿
fn1(''); //黄小腿
fn1(null); //黄小腿
//ES6默认参数
const fn2=(n1=2,n2=10)=>{
console.log(n1+n2);
}
fn2(); //12
fn2(10,20);//30
函数的length属性形参的数量
1、用了默认值的参数,不会计入length里;
2、rest参数不会计入length里;
//length(函数形参的个数)
function fn4(v1,v2,v3,v4){}
fn4(1,2,3,4,5,6,7);
console.log(fn4.length); //4
const fn5=(a,b=20)=>{}
console.log(fn5.length); //1