ES6 Destructuring Assignment (解构赋值)

数组的解构赋值

更简单明了地定义变量

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) 
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容