ES6:函数参数默认值

1. 逻辑或( || )实现默认值

在es6之前,逻辑或可以做到函数的参数设置默认值:

function showName(name) {
	var n = name || 'Tom';
	console.log(n);
}
showName();//Tom
showName('Jary');//Jary

逻辑或具有一个隐藏的特性,它能够找到第一个真值表达式(即不为false)并返回它

var name = null || 'Tom' || undefined;//此时 name 为 Tom

2. es6中的函数参数默认值

es6中,可以将默认值直接赋给参数来实现:

function add(x = 2, y = 3) {
	return x + y;
}
add();//5

当使用上面的函数时,只对x即第一个参数赋新的值,而y使用默认值时,可以这么写:

add(5);//8

当只对y赋新的值,x采用默认值时,必须要对x写"undefined":

add( , 5);//Error: Unexpected token ,
add(undefined, 5);//7

同样的对更多个参数的函数,只要赋新值的参数不是第一个,之前的采用默认值必须要写"undefined",而如果不是最后一个,后面的参数采用默认值则也可以省略,前面的却不能:

fun(undefined, undefined, ... 5);

而且不能用null替代undefined

add(null , 5);//5   此时null为0

总结起来就是:默认值即对参数赋值,不是第一个参数赋新值前面的参数保留默认值写undefined,后面的保留默认值可省略

3. 补充:逻辑与( && )

与逻辑或相对应,逻辑与也有一个特性:它可以找到第一个虚值表达式并返回,或者都为真值表达式,则返回最后一个真值表达式:

var x = false && 5 && null;//x = false
var y = 5 && true && 'Tom';//y = 'Tom'
发布了26 篇原创文章 · 获赞 0 · 访问量 616

猜你喜欢

转载自blog.csdn.net/weixin_43856797/article/details/103960664