ES6学习第三篇--函数参数的扩展
默认参数
1. 基本用法
function fn(name,age=17){
console.log(name+","+age);
}
fn("Amy",18); // Amy,18
fn("Amy",""); // Amy,
fn("Amy"); // Amy,17
运行结果图:
2. 默认参数中不允许有同名参数
js代码:
// 不报错
function fn(name,name){
console.log(name);
}
// 报错
//SyntaxError: Duplicate parameter name not allowed in this context
function fn(name,name,age=17){
console.log(name+","+age);
}
运行结果图:
3. 默认参数生效场景
只有在未传递参数,或者参数为 undefined 时,才会使用默认参数,null 值被认为是有效的值传递。
js代码:
function fn(name,age=17){
console.log(name+","+age);
}
fn("Amy",null); // Amy,null
fn("Amy",undefined); // Amy,17
运行效果图:
js代码:
function f(x,y=x){
console.log(x,y);
}
f(1); // 1 1
运行效果图:
4. 默认参数不生效场景
函数参数默认值存在暂时性死区,在函数参数默认值表达式中,还未初始化赋值的参数值无法作为其他参数的默认值。
js代码:
function f(x=y){
console.log(x);
}
f();
运行效果图:
不定参数
不定参数用来表示不确定参数个数,形如,…变量名,由…加上一个具名参数标识符组成。具名参数只能放在参数组的最后,并且有且只有一个不定参数。
js代码:
function f(...values){
console.log(values.length);
}
f(1,2); //2
f(1,2,3,4); //4
运行效果图:
上一篇:ES6学习第二篇–箭头函数