let的解构赋值_ES6学习之解构赋值及其原理

1、基本语法

1.1、数组

// 基础类型解构

let [a, b, c] = [1, 2, 3]

console.log(a, b, c) // 1, 2, 3

// 对象数组解构

let [a, b, c] = [{name: '1'}, {name: '2'}, {name: '3'}]

console.log(a, b, c) // {name: '1'}, {name: '2'}, {name: '3'}

// ...解构

let [head, ...tail] = [1, 2, 3, 4]

console.log(head, tail) // 1, [2, 3, 4]

// 嵌套解构

let [a, [b], d] = [1, [2, 3], 4]

console.log(a, b, d) // 1, 2, 4

// 解构不成功为undefined

let [a, b, c] = [1]

console.log(a, b, c) // 1, undefined, undefined

// 解构默认赋值

let [x = 1] = [undefined];// x=1;

let [x = 1] = [null];// x=null; // 数组成员严格等于undefined,默认值才会生效

let [x = 1, y = x] = []; // x=1; y=1

let [x = 1, y = x] = [2]; // x=2; y=2

let [x = 1, y = x] = [1, 2]; // x=1; y=2

let [x = y, y = 1] = []; // ReferenceError: y is not defined 因为x用y做默认值时,y还没有声明

1.2 对象

// 对象属性解构

let { f1, f2 } = { f1: 'test1', f2: 'test2' }

console.log(f1, f2) // test1, test2

// 可以不按照顺序,这是数组解构和对象解构的区别之一

let { f2, f1 } = { f1: 'test1', f2: 'test2' }

console.log(f1, f2) // test1, test2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值