es6之前函数的参数不能传默认值:
function fn(a, b){
console.log(a)
console.log(b)
}
fn(2)
// 2
// undefined
如果调用函数的时候传不传入对应的参数,则参数的值为 undefined。
es6和es5函数 arguments 的差别:
arguments 是函数传入的实参,在es6中,如果函数有设置默认值,那么修改参数变量的值,不会影响
function fn(a, b=5){
a = 3;
console.log(a)
console.log(arguments[0])
}
fn(2) // 3 // 2
这里,我在函数内部将参数 a 的值改成了 3,但是arguments[0] 的值还是传入的2。
ES6 解构赋值
解构赋值是对赋值运算符的扩展。
他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
优点: 简洁且易读,代码更加清晰;方便了复杂对象中数据字段获取。