数组的解构赋值
更简单明了地定义变量
var a=1; var b=2; var c=3; //es5
let [a,b,c] = [1,2,3] //es6
设定默认值
let [a,b,c,d=4] =[1,2,3]
d // 4
如果一个数组成员是null
,默认值就不会生效,因为null
不严格等于undefined
。
let [x = 1] = [null];
x // null
如果默认值是一个function
,那么她是惰性求值的。
let [x = f()] = [1]
对象的解构赋值
引用模块
var jsonMiddleware = require('body-parser').jsonMiddleware //es5
var {jsonMiddleware} = require('body-parser') //es6
从后端取到的Json处理
let res = {
flag:1,
id:2003923,
data:[{{type: "work", subject: "business"},{...},...]
}
let {flag , id , data} = res
解构对象里的方法
let {pow} = Math
console.log(pow(3,2)) //9
字符串的解构赋值
let {length : len} = 'pink';
len // 4
函数参数的解构赋值
参数可以是一个数组
[[1, 2], [3, 4]].map(([a, b]) => a + b);
// [ 3, 7 ]
也可以是一个对象,甚至有她的默认值。
let obj = {1,2}
function test({a=10,b}) {
return a+b
}
test(obj)