聊聊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 相关文章推荐
通过Unicode转义序列来加密,按你说的可以算是混淆吧
May 06 Javascript
HTML node相关的一些资料整理
Jan 01 Javascript
原生js制作简单的数字键盘
Apr 24 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 Javascript
javascript函数中的3个高级技巧
Sep 22 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
Oct 25 Javascript
总结js函数相关知识点
Feb 27 Javascript
vue-cli扩展多模块打包的示例代码
Apr 09 Javascript
vuejs移动端实现div拖拽移动
Jul 25 Javascript
小程序使用watch监听数据变化的方法详解
Sep 20 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
Nov 15 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实现的短网址算法分享
2014/06/20 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
javascript实现文字跑马灯效果
2020/06/18 Javascript
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
Python列表切片操作实例总结
2019/02/19 Python
python中update的基本使用方法详解
2019/07/17 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
情侣吵架检讨书
2014/02/05 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
应届生求职信范文
2014/05/26 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python