聊聊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 相关文章推荐
jQuery筛选器children()案例详解(图文)
Feb 17 Javascript
JavaScript中数组对象的那些自带方法介绍
Mar 12 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
Apr 17 Javascript
使用js操作css实现js改变背景图片示例
Mar 10 Javascript
javascript移出节点removeChild()使用介绍
Apr 03 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 Javascript
javascript中的作用域和闭包详解
Jan 13 Javascript
在React框架中实现一些AngularJS中ng指令的例子
Mar 06 Javascript
js css+html实现简单的日历
Jul 14 Javascript
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 jQuery
jQuery 选择方法及$(this)用法实例分析
May 19 jQuery
原生js+canvas实现验证码
Nov 29 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
php检测图片木马多进制编程实践
2013/04/11 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
2015/01/04 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
Python入门篇之对象类型
2014/10/17 Python
Python 转义字符详细介绍
2017/03/21 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python 分发包中添加额外文件的方法
2019/08/16 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
执行Python程序时模块报错问题
2020/03/26 Python
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
物流专业大学生的自我鉴定
2013/11/13 职场文书
会计专业应届生求职信
2013/11/24 职场文书
高中毕业生的个人自我评价
2014/02/21 职场文书
家长对孩子的感言
2014/03/10 职场文书
湘江北去观后感
2015/06/15 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
人生感悟经典句子
2019/08/20 职场文书