ES6知识点整理之数组解构和字符串解构的应用示例


Posted in Javascript onApril 17, 2019

本文实例讲述了ES6知识点整理之数组解构和字符串解构的应用。分享给大家供大家参考,具体如下:

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring), 而数组的解构赋值是从数组中提取值,按照对应位置,对变量赋值。

ES6之前的赋值操作

var arr = [1,2,3];
var a = arr[0];
var b = arr[1];
var c = arr[2];
console.log(a,b,c); // 1 2 3

对一维数组的解构赋值的应用

var arr = [1,2,3];
var [a,b,c] = arr;
console.log(a,b,c); // 1 2 3

对多维数组的解构赋值的应用

let arr = [22, [5,8], 11];
let [a,[b,c],d] = arr;
console.log(a,b,c,d); // 22 5 8 11

解构赋值用于变量的交换举例

let x = 11;
let y = 22;
[y,x] = [x,y];
console.log(x,y); // 22 11

解构赋值中不完全的解析示例

let arr = [22, [5,8], 11];
let [a,[b],c] = arr;
console.log(a, b, c); // 22 5 11
let [m,[,n],o] = arr;
console.log(m, n, o); // 22 8 11

不能被数组解析的值

let [m] = "";
console.log(m); // undefined;
let [x,y] = NaN; // NaN is not iterable. 不能被数组解析的值:NaN, undefined, null, {}

实现了iterator接口的类型都可以被解析赋值

let [x,y] = new Set([22, 33]);
console.log(x,y); // 22 33

自己创造一个实现iterator接口的对象进行解构赋值

class Group{
 constructor() {
 }
 next() {
  return {value:'Joh', done: false};
 }
 [Symbol.iterator]() {
  return this;
 }
}
let group = new Group();
let [x,y,z,m,n] = group;
console.log(x,y,z,m,n); // Joh Joh Joh Joh Joh 备注:这里如果类中的next的done为true,那么全为undefined

… 运算符 转换成数组的解构举例

var [x,w, ...y] = [1,2,3,4,5,6];
console.log(x,w, y); // 1 2 [3,4,5,6]

解构数组的默认值

如果数组中的不是undefined,都会被成功解构, 不会被默认值替代

let [x=15, y] = [undefined, 12];
console.log(x,y); // 15 12
let [m=12, n] = [null, 10];
console.log(m, n); // null 10

字符串解构的处理

var [a,b,c] = 'hello';
console.log(a,b,c); // h e l

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.3water.com/code/HtmlJsRun测试上述代码运行结果。

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
JavaScript框架是什么?怎样才能叫做框架?
Jul 01 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
May 31 Javascript
微信小程序 教程之事件
Oct 18 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
Aug 07 Javascript
通过fastclick源码分析彻底解决tap“点透”
Dec 24 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
微信小程序实现默认第一个选中变色效果
Jul 17 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
Nov 02 Javascript
echarts实现词云自定义形状的示例代码
Feb 20 Javascript
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
Jul 22 jQuery
vue cli3 调用百度翻译API翻译页面的实现示例
Sep 13 Javascript
ES6知识点整理之对象解构赋值应用示例
Apr 17 #Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
Apr 17 #Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
Apr 17 #Javascript
一篇文章,教你学会Vue CLI 插件开发
Apr 17 #Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
Apr 17 #Javascript
mpvue性能优化实战技巧(小结)
Apr 17 #Javascript
node.js监听文件变化的实现方法
Apr 17 #Javascript
You might like
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
php 定界符格式引起的错误
2011/05/24 PHP
php编程每天必学之验证码
2016/03/03 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
vue实现倒计时获取验证码效果
2020/04/17 Javascript
python二分法实现实例
2013/11/21 Python
Python异常处理操作实例详解
2018/08/28 Python
django使用admin站点上传图片的实例
2019/07/28 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
学生会招新策划书
2014/02/14 职场文书
保密工作实施方案
2014/02/24 职场文书
大跃进口号
2014/06/16 职场文书
关于读书的活动方案
2014/08/14 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL