ES6之解构赋值小结

本文详细介绍了ES6中的解构赋值,包括数组、对象、数值和布尔值的解构方式及默认值设定。解构赋值允许我们方便地从数组或对象中提取值,并赋值给变量。在实际项目中,它可以用于交换变量值、引入公共方法、获取函数返回的特定对象属性以及按需引入模块等场景,提高了代码的可读性和效率。
摘要由CSDN通过智能技术生成

ES6之解构赋值小结

数组的解构赋值

数组的解构赋值是和变量的位置有关的,只有位置相同的变量才会进行赋值,且ES6内部使用严格相等运算符(===),判断一个位置是否有值。所以,当使用默认值时,只有当一个数组成员严格等于undefined,默认值才会生效。

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

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

注意:

  • 当使用数组的解构赋值的默认值时,如果默认值是个表达式(如函数)时,这个表达式是惰性求值的,即只有在用到的时候,才会求值。
function f() {
  console.log('aaa');
}

let [x = f()] = [1];
//因为x能取到值,所以函数f根本不会执行
  • 默认值可以引用解构赋值的其他变量,但该变量必须已经声明。

对象的解构赋值

数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者
如:

let { bar, foo } = { foo: 'aaa', bar: 'bbb' };
foo // "aaa"
bar // "bbb"

如果变量名和属性名不一样,要进行解构赋值可参考下面的格式:

//要给变量b赋值
let {foo:b}={foo:'aaa'}
b//'aaa'
//注:这里的b不用单独声明,否则报错

对象的解构赋值也可设置默认值,与数组相同,只有当对象的属性值严格等于undefined时,默认值才生效。

数值和布尔值的结构赋值

当等号右边为数值或布尔值时,都会将其先转换为对象。由于undefined和null无法转换为对象,所以对其进行解构赋值就会报错。

解构赋值项目中的应用举例:

  • 公共方法的引入
    在项目中,以单独的文件来写公共方法,每一个方法都用变量名接收并使用expert导出,在使用时,可以直接用import导出想要的方法就行。如:
//common.js
const a=function(){//....各种操作}
expert{a}
//使用的组件a.vue
import {a} form 'common.js'
  • 交换两个变量的值
//根据数组的解构赋值跟位置有关
let a=1;let b=2;
[a,b]=[b,a];
a//2
b//1
  • 获取函数返回的值中的若干个对象
    因为函数只可以返回一个值,所有要返回多个值时,可以放在对象或者数组中返回。
function c(){
	return { a:1, b:2, c:3, d:4 }
}
let {b,d}=c();
b//2
d//4
  • 引入模块
    在进行项目开发时,有时只需要引用框架中的特定模块。

更多用途欢迎补充

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值