function add([x,y]){ return x+y } add([3,5]) // 8 [[3,5],[6,7]].map(([a,b]) => a + b) //8 , 13 function m({x=3, y=4} = {}){ return [x,y] } m({x:33,y:8}) // [33,8] m({x:32}) // [32,4] m({}) // [3,4] m() // [3,4] function m({x,y} = {x=0,y=0}){ return [x,y] } m({x:33,y:8}) // [33,8] // 代替右边的 x:0, y:0 所以是传值 33 8 m({x:32}) // [32,undefined] //因为传值替代右边的赋值,但是只有x没有y //所以y是取 左边y的默认值,因为你没有赋值 为undefined m({}) // [undefined,undefined] // 取左边x,y的默认值,因为没有赋值 为undefined m() // [0,0] // 没有传值,使用本身的赋值 都是0
其他
不能使用圆括号的情况
变量声明语句
函数参数
赋值语句的模式
可以使用圆括号的情况
赋值语句的非模式部分,可以使用圆括号
解构赋值的用途
交换变量的值
从函数返回多个值
函数参数的定义
提取JOSN数据
函数参数的默认值
遍历Map结构
输入模块的指定方法