聊聊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 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
基于JavaScript 声明全局变量的三种方式详解
May 07 Javascript
页面刷新时记住滚动条的位置jquery代码
Jun 17 Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
jQuery插件expander实现图片翻转特效
May 21 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
Jul 04 Javascript
jQuery自适应轮播图插件Swiper用法示例
Aug 24 Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 Javascript
小程序指纹验证的实现代码
Dec 04 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
Feb 03 Javascript
js实现滑动滑块验证登录
Jul 24 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中的串行化变量和序列化对象
2006/09/05 PHP
php实现rc4加密算法代码
2012/04/25 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Django开发中复选框用法示例
2018/03/20 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
python 将Excel转Word的示例
2021/03/02 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
小学竞选班干部演讲稿
2014/08/20 职场文书
2014财务年度工作总结
2014/11/11 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
超市员工辞职信范文
2015/05/12 职场文书
工作报告范文
2019/06/20 职场文书
python如何获取网络数据
2021/04/11 Python
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
MySQL普通表如何转换成分区表
2022/05/30 MySQL