解构赋值

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

数组对应对值有没有?如果没有(数组对没有指undefined)就使用默认值,如果有就使用对应值

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
}
add() //3
add([2]) //4
add([3,4]) //7

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

推荐阅读更多精彩内容

  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 4,386评论 0 0
  • 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring...
    嘉奇呦_nice阅读 4,114评论 0 2
  • 本文通过学习阮一峰的博客,外加自己的理解,整理了一下我对js变量的解构赋值的理解。 数组的解构赋值 对象的解构赋值...
    宋乐怡阅读 3,427评论 0 2
  • 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destru...
    呼呼哥阅读 3,110评论 0 3
  • 01、数组的解构赋值ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destruct...
    夜幕小草阅读 2,642评论 0 1