我们之前想让函数的参数在不传的时候有一个默认值的话,通常的做法是 在函数内部接收到参数之后 再用逻辑或语句给参数再赋值一次 代码如下
var f = function (a,b) {
a = a||10;
b = b||10;
//这段代码本意是不传就给10 但是传0的话会转为false
console.log(a+b)
};
f(0,0); //会打印20
这样就产生了一个问题 当参数是 ‘’----(空字符串) 0-------(数字零) 都会导致参数被赋值为后者。
=========================================================
而es6的新语法避开了这个问题
var f = function (a = 10,b = 10) {
console.log(a+b)
};
f(0,0)//打印0
f()//打印20
甚至,后面参数的默认可以引用前面参数的默认值
var f = function (a = 10,b = 10,c = 2a+b) {
console.log(a+b)
console.log(c)
};
f();