# 解构赋值

## 1. 数组的解构

``````let [a,b,c] = [1,2,3]
console.log(a, b, c)

let [a, [b], c] = [2, [3], 4]
a //2
b //3
c //4

let [a] = 1 //报错
``````

## 2. 默认值

``````let [a, b = 2] = [3]
a // 3
b // 2

let [a, b = 2] = [3, 4]
a //3
b //4
``````

``````let [a=2, b=3] = [undefined, null]
a //2
b //null
``````
``````let [a=1, b=a] = [2]
a //2
b //2
``````

## 3. 对象的解构赋值

``````let [name, age] = [‘hunger’, 3]
let p1 = {name, age}
//等同于
let p2 = {name: name, age: age}
``````

``````let {name, age} = {name: ‘jirengu’, age: 4}
name //‘jirengu’
age //4
``````

``````let name
let age
({name: name, age: age} = {name: ‘jirengu’, age: 4})
``````

## 4. 默认值

``````let {x, y=5} = {x: 1}
x //1
y //5
``````

## 5. 函数解构

``````function add([x=1, y=2]){
return x+y
}

function sum({x, y}={x:0, y:0}, {a=1, b=1}){
return [x+a, y+b]
}
sum({x:1, y:2}, {a:2}) //[3, 3]
``````

## 6. 作用

``````let [x, y] = [1, 2]
[x, y] = [y, x]
x //2
y // 1
``````
``````function ajax({url, type=‘GET’}){
}
ajax({url: ‘http://localhost:3000/getData’})
``````

### 推荐阅读更多精彩内容

• 导入numpy库： import numpy as np Numpy是python的一个科学计算库的一个基础包，包...
放心笑阅读 173评论 0 2
• 1.Array.from（）：将类数组的对象和可遍历的对象转为真正的数组。let array = {'0': 'a...
BSKSdorica阅读 208评论 0 4
• 为什么使用 ES6 ? 每一次标准的诞生都意味着语言的完善，功能的加强。JavaScript语言本身也有一些令人不...
肖青荣阅读 130评论 0 3
• 1.var 定义的是变量，没有块作用域的概念，可以跨块作用域访问，不能跨函数访问 块级作用域由 { } 包括，if...
onresize阅读 860评论 0 2
• 变量类型的判断 1.JS中常见的数据类型分为基本类型（7种）：string、boolean、number、unde...
抽疯的稻草绳阅读 202评论 0 3