变量的解构赋值

ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被称为解构赋值

1.数组解构赋值
普通数组依照位置一次进行赋值
嵌套数组也是一次进行赋值
注意点:
如果解构不成功就为undefined
结构赋值触发默认值的情况(1.左边有值,右边为空 2.左边赋值了,右边赋值为undefined·)
如果默认值是一个表达式,那么这个表达式是惰性求值,只有在用到的时候,才会求值
在这里插入图片描述
默认值可以引用其他变量,但是顺序为先解构,在触发默认值
只要某种数据结构具有Iterator接口,都可以采用数组形式的结构赋值

2.对象结构赋值

对象解构赋值,根据对象属性名进行解构
属性名解构不成功也是undefined

其中注意解构的嵌套赋值
在这里插入图片描述
这里可以看出,对象的结构赋值格式为:
{a:a=3,b:b=4}={a:a=2}
可以简写为
{a=3,b=4} = {a=2}
所以要分清楚,这个值到低赋在哪个上面的

在这里插入图片描述
即对于已经声明的变量赋值,要用一个圆括号括起来

3.字符串的结构赋值
可以将字符串拆分依次赋值
也可以将字符串的长度进行赋值
在这里插入图片描述
4.数值和布尔值的结构赋值
结构赋值时,如果等号右边时数值和布尔值,则会先转为对象
let {toString: s} = 123;
s === Number.prototype.toString // true

let {toString: s} = true;
s === Boolean.prototype.toString // true

5.函数解构赋值
主要还是用来进行函数参数的传递
在这里插入图片描述

主要就是x=0,y=0和x:0,y:0的区别

6.圆括号问题
一个式子到低是模式,还是表达式,
不使用圆括号的情况:
1.变量声明语句
2.函数参数
3.赋值语句的模式

可以使用圆括号的情况:赋值语句的非模式部分

7.解构赋值的用处:
1.用于交换变量的值
2.从函数返回多个值
在这里插入图片描述
3.函数参数的定义
方便地将一组参数与变量名对应起来
在这里插入图片描述
4.提取json数据
解构赋值对于提取json对象中的数据,尤其重要
在这里插入图片描述
5.函数参数的默认值
6遍历map结构
7.加载模块时,往往需要指定输入哪些方法,解构赋值使得输入语句非常清晰。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值