Es6 解构赋值和扩展运算符

本文详细介绍了ES6中的解构赋值和扩展运算符。解构赋值是一种按照特定模式从数组中提取值并赋给变量的技术,要求模式匹配。文章提到了完全解构、不完全解构和解构失败的情况,并强调了解构赋值的默认值设定。扩展运算符用于合并和拷贝数组,同时在函数调用和参数传递中发挥作用,且不会影响原始数组。
摘要由CSDN通过智能技术生成

什么叫做解构?

在ES6中 按照一定的模式 从数组中提取数值 对应的变量进行赋值的操作 就叫做解构赋值
本质上讲 解构赋值 就是模式匹配

1. 解构赋值

var [a, b, c] = [1, 2 ,3]
// console.log(a, b, c);

在这里插入图片描述

如果想要解构赋值成功 那么就必须保证两边的模式完全一样

var [a, b, c] = [1,[2],{
   name : "lucy"}];
// console.log(a, b, c);

在这里插入图片描述

在这里插入图片描述
2. 解构不成功

如果想要解构不成功 那么变量的值就等于undefined

  let [r] = [];
  // console.log(r);  // undefined  

这个就像var 声明了变量之后 不进行赋值 var a;

解构不成功 :

  let [s, t] = [3];
  // console.log(s, t);   

这个就是属于解构不成功 因为数值不够 3 , undefined

3. 不完全解构
不完全解构的情况下 也可以进行解构赋值 只是后面放数值的数组都有多的数字
不完全解构 : 指得就是等号左右两边模式一样 但是只匹配到右边得一部分数据

  let [x, y] = [1, 2 ,3];
  console.log(x , y);

在这里插入图片描述
4. 如果等号右边不是数组 那么就会报错 因为模式一样

 let [m] = 1;
 let [m] = false;
 let [m] = null;
 let [m] = {
   };
 console.log(m);  // {}  is not iterable  因为{}不可使用下标进行迭代

注意点
1. 解构赋值是允设置默认得 但是如果要启用默认值 那么 这个变量得值就必须严格等于undefined

// let [a, b] = [1, 2];

 let [a, b = "abc"] = [1, 2];
 console
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值