ES6之前函数时无法给参数设置默认值的,而ES6支持了这个特性
function fn(name,
age = 100,
arr = [],
obj = {},
callback = function () {}){function pi() {
return 3.14;
}
function fn(r, p =pi()){ //pi()返回值交给p
console.log(r * r * p);
}
fn(10);
//参数1是必须传传递
//其余参数有默认值,可选传递
console.log(arr);
console.log(obj);
console.log(callback('callback'));
}
fn('111',200,[1,2,3],{key : 1 }, function (info) {
return info;
});
函数参数的默认值,也可以是另一个函数的返回值
function pi() {
return 3.14;
}
function fn(r, p =pi()){ //pi()返回值交给p
console.log(r * r * p);
}
fn(10);
如果只想传递第二往后的参数,参数一保持默认值,可以用undefined占位
function fn(name = '111', age){ //null 空都不行
console.log(name);
console.log(age);
}
fn(undefined,100);
支持参数二使用参数一的值作为默认值,反之不可以
function fn(x,y = x){
console.log(y);
}
fn(1);
解构变量有不定元素,那么函数的参数也可以有不定参数
console.log(other);
}
fn('111',100,'男');