ES6变量的解构赋值简介

1.数组的解构赋值

ES6允许这样:
在这里插入图片描述
可以从数组中提取值,按照对应位置,对变量赋值(根据下标结构给变量)。本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。
在这里插入图片描述
// 如果数组本身还有嵌套,也可以通过下面的形式进行解构赋值,注意嵌套层次和位置要保持一致:
在这里插入图片描述
逗号占位置,依次顺延
在这里插入图片描述
不完全解构,即等号左边的模式,只匹配一部分的等号右边的数组。这种情况下,解构依然可以成功。
在这里插入图片描述
如果解构不成功,变量的值就等于undefined。
在这里插入图片描述

2.对象的解构赋值

对象的解构赋值(根据属性名解构)
let {n, a} = {n:‘tom’, a:12}
对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。
在这里插入图片描述
如果解构失败,变量的值等于undefined。 例子中的变量没有对应的同名属性,导致取不到值,最后等于undefined。相当于执行了obj.baz
在这里插入图片描述
在这里插入图片描述
对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。
在这里插入图片描述
foo是匹配的模式,baz才是变量。真正被赋值的是变量baz,而不是模式foo。

3.函数参数的解构赋值

函数的参数也可以使用解构赋值。
在这里插入图片描述
参考:阮一峰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值