在这之前我们想给一个参数赋一个默认值的话我们通常会写成如下的样子:
<script>
function multiply(a,b) {
a = a || 5;
b = b || 3;
return a*b;
}
</script>
因为函数会给参数默认赋予undefined,我们这行代码的意思就是,如果它的值是undefined的话那就返回5,如果不是的话那就返回它的值,还有一点,函数会默认参数这个变量的,所以不用再次声明,否则会报错。
那在ES6中的话,我们就可以更简单地来帮助我我们实现这个功能。
<script>
function multiply(a = 5,b = 3) { //直接在参数内直接赋值
return a*b;
}
</script>
这样既可以减少我么们的代码量,也可以让我们很容易的明白哪些参数是直接可以省略的,有利于代码的可读性。需要注意的是,当我们给第一个a不赋值的话,第二个b赋值2,然后在浏览器中浏览一下会出现报错Unexpected token,这是因为你只赋值最后一个参数的话,第一个需要赋值undefined,这个时候才会使用默认值5,b使用的是我们传入的值2,所以结果是10。
刚才我们也提到了函数会给参数默认赋值undefined,所以说你传入的是null的话,不会传入默认值undefined,那么函数参数的默认值也可以使用结构的方法。
网友评论