聊聊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 相关文章推荐
贴一个在Mozilla中常用的Javascript代码
Jan 09 Javascript
jQuery 数据缓存data(name, value)详解及实现
Jan 04 Javascript
基于JavaScript 类的使用详解
May 07 Javascript
jQuery自定义事件的简单实现代码
Jan 27 Javascript
JavaScript获取图片的原始尺寸以宽度为例
May 04 Javascript
AngularJS入门教程之AngularJS表达式
Apr 18 Javascript
javascript中数组和字符串的方法对比
Jul 20 Javascript
JavaScript中Array的实用操作技巧分享
Sep 11 Javascript
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
React Component存在的几种形式详解
Nov 06 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
Feb 20 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
May 22 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
附件名前加网站名
2008/03/23 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
js 函数的副作用分析
2011/08/23 Javascript
JS实现随机数生成算法示例代码
2013/08/08 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
2017/09/10 Javascript
jQuery实现滚动效果
2017/11/17 jQuery
小程序日历控件使用方法详解
2018/12/29 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
python自动生成model文件过程详解
2019/11/02 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
2020/03/09 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
实习生自我鉴定范文
2013/12/05 职场文书
大学毕业感言
2014/01/10 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
检讨书怎么写?
2019/06/21 职场文书
Python中npy和mat文件的保存与读取
2022/04/24 Python