聊聊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学习网址备忘
May 29 Javascript
Javascript 兼容firefox的一些问题
May 21 Javascript
实现png图片和png背景透明(支持多浏览器)的方法
Sep 08 Javascript
iphone safari不支持position fixed的解决方法
May 04 Javascript
JQuery.get提交页面不跳转的解决方法
Jan 13 Javascript
JavaScript实现在标题栏上显示当前日期的方法
Mar 19 Javascript
深入理解jQuery3.0的domManip函数
Sep 01 Javascript
jquery+css实现下拉列表功能
Sep 03 jQuery
Angular6中使用Swiper的方法示例
Jul 09 Javascript
解决Layui数据表格中checkbox位置不居中的方法
Aug 15 Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 Javascript
JavaScript实现图片放大预览效果
Nov 02 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
PHP chr()函数讲解
2019/02/11 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
js实现随机抽奖
2020/03/19 Javascript
详解vue路由
2020/08/05 Javascript
Python3.2中的字符串函数学习总结
2015/04/23 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
python 实现单通道转3通道
2019/12/03 Python
基于python 取余问题(%)详解
2020/06/03 Python
成人大专自我鉴定范文
2013/10/19 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
实施意见格式范本
2015/06/05 职场文书
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技