聊聊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 相关文章推荐
用JTrackBar实现的模拟苹果风格的滚动条
Aug 06 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
Jun 08 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
Sep 11 Javascript
jQuery 追加元素的方法如append、prepend、before
Jan 16 Javascript
浅谈jQuery中setInterval()方法
Jul 07 Javascript
Google 地图获取API Key详细教程
Aug 06 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 Javascript
JS填写银行卡号每隔4位数字加一个空格
Dec 19 Javascript
深入理解vue路由的使用
Mar 24 Javascript
jquery图片放大镜效果
Jun 23 jQuery
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
Jul 28 Javascript
JavaScript中的执行环境和作用域链
Sep 04 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 json_encode中文乱码问题的解决办法
2013/09/09 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
python 编写简单网页服务器的实例
2018/06/01 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
如何在django中实现分页功能
2020/04/22 Python
企业党员公开承诺书
2014/03/26 职场文书
社区先进事迹材料
2014/05/19 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
人民调解协议书范本
2014/10/11 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis