聊聊JS ES6中的解构


Posted in Javascript onApril 29, 2021

概述

es6新增了一种从数组或者对象中获取指定元素的方式,这种方式就是我们今天要说的解构。

先来说说数组的解构

在有解构之前呢,我们获取数组中的指定元素通常是根据索引去做的:

const arr = [1, 2, 3]; 
const a = arr[1];

有了解构之后呢,我们便可以使用如下方式快速的去获取数组中的某个元素:

const arr = [1, 2, 3];
const [a, b, c] = arr;

console.log(a);
console.log(b);
console.log(c);

这样打印出a, b, c的值分别是:

1

2

3

如果我们只想获取前两个元素呢,那么我们可以这样写:

const arr = [1, 2, 3];
const [a, b] = arr;

console.log(a);
console.log(b);

我们也可以结合扩展运算符获取数组中指定的多个元素,比如:

const arr = [1, 2, 3];
const [a, ...brr] = arr;

console.log(a);
console.log(brr);

这样brr就是除了1以外的其他元素组成的数组,打印出a, brr的值分别是:

1

[2, 3]

那如果我们只想获取数组中的某一个元素呢?比如我只想获取数组中的2,又该如何去写呢?

const arr = [1, 2, 3];
const [, a] = arr;
console.log(a);

以上我们通过一个逗号占位确保我们解构和数组本身的位置是一致的来获取到特定位置的某个元素。
可以看到,解构的出现方便了我们去获取数组指定位置的一个或多个元素。这也是他在代码中的一个重要的应用。

说完数组的解构,我们再来聊聊

对象的解构

与数组解构不同的是,对象的解构是根据属性名去匹配的,因为对象不像数组下标那样有顺序,因此它不能用下标去提取。
就比如我们定义一个对象obj,我们想获取他的name属性值就可以这样写:

const obj = {
    name: 'wudixiaodoujie',
    age : 18
};
const { name } = obj;
console.log(name);
wudixiaodoujie

const age = 0;
const { age: perAge } = obj;
console.log(perAge);
18

对象的解构应用还是比较广的,比如我们需要频繁的调用对象的某个属性或方法就可以通过解构将其赋值给一个变量,通过一个变量去调用可以在一定程度上减少代码量。

以上就是JS ES6中的解构的详细内容,更多关于JS ES6中的解构的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
javascript中的数字与字符串相加实例分析
Aug 14 Javascript
使用js dom和jquery分别实现简单增删改
Sep 11 Javascript
JS+CSS实现滑动切换tab菜单效果
Aug 25 Javascript
javascript自动恢复文本框点击清除后的默认文本
Jan 12 Javascript
jquery.validate提示错误信息位置方法
Jan 22 Javascript
jquery获取input type=text中的值的各种方式(总结)
Dec 02 Javascript
DOM 事件的深入浅出(二)
Dec 05 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
Aug 08 jQuery
ES6入门教程之Array.from()方法
Mar 23 Javascript
VuePress 中如何增加用户登录功能
Nov 29 Javascript
js的Object.assign用法示例分析
Mar 05 Javascript
详解TypeScript中的类型保护
Apr 29 #Javascript
7个你应该知道的JS原生错误类型
Apr 29 #Javascript
使用vue-element-admin框架从后端动态获取菜单功能的实现
如何使用JavaScript策略模式校验表单
Apr 29 #Javascript
react中props 的使用及进行限制的方法
Apr 28 #Javascript
React Hook用法示例详解(6个常见hook)
vue使用v-model进行跨组件绑定的基本实现方法
You might like
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
PHP使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
vue实现登陆登出的实现示例
2017/09/15 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python实现在目录中查找指定文件的方法
2014/11/11 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
python中退出多层循环的方法
2018/11/27 Python
python requests库的使用
2021/01/06 Python
python openpyxl模块的使用详解
2021/02/25 Python
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
航空大学应届生求职信
2013/11/10 职场文书
驾驶员培训方案
2014/05/01 职场文书
环境保护建议书
2014/08/26 职场文书
小学六一主持词开场白
2015/05/28 职场文书
教师培训简讯
2015/07/20 职场文书
员工旷工检讨书
2015/08/15 职场文书
创业计划书之校园超市
2019/09/12 职场文书
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
Win10 Anaconda安装python-pcl
2022/04/29 Servers