聊聊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类
Sep 08 Javascript
网页上的Javascript编辑器和代码格式化
Apr 25 Javascript
JavaScript 命名空间 使用介绍
Aug 29 Javascript
js设置组合快捷键/tabindex功能的方法
Nov 21 Javascript
jquery中map函数遍历数组用法实例
May 18 Javascript
用js写的一个路由(简单实例)
Sep 24 Javascript
JSON 必知必会 观后记
Oct 27 Javascript
JavaScript模块详解
Dec 18 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
Jan 31 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
May 30 Javascript
通过GASP让vue实现动态效果实例代码详解
Nov 24 Javascript
微信小程序保存图片到相册权限设置
Apr 09 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中使用Oracle数据库(4)
2006/10/09 PHP
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
ECMAScript 创建自己的js类库
2012/11/22 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
浅谈js的异步执行
2016/10/18 Javascript
微信小程序 教程之wxapp 视图容器 view
2016/10/19 Javascript
jquery表单插件form使用方法详解
2017/01/20 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
教你学会使用Python正则表达式
2017/09/07 Python
Tornado 多进程实现分析详解
2018/01/12 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python抖音表白程序源代码
2019/04/07 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
Python requests上传文件实现步骤
2020/09/15 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
志愿者事迹材料
2014/12/26 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python