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 相关文章推荐
javascript 自定义事件初探
Aug 21 Javascript
JS实现self的resend
Jul 22 Javascript
如何判断微信内置浏览器(通过User Agent实现)
Sep 01 Javascript
Firefox下无法正常显示年份的解决方法
Sep 04 Javascript
JavaScript中的值类型详细介绍
Dec 29 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
Sep 04 Javascript
移动适配的几种方案(三种方案)
Nov 25 Javascript
JS匿名函数类生成方式实例分析
Nov 26 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
Sep 18 Javascript
react实现菜单权限控制的方法
Dec 11 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
Sep 02 Javascript
Vue-Router的使用方法
Sep 05 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
JavaScript 字符串乘法
2009/08/20 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
python中for in的用法详解
2020/04/17 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
倩碧英国官网:Clinique英国
2018/08/10 全球购物
十佳护士先进事迹
2014/05/08 职场文书
中层干部培训方案
2014/06/16 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
教师先进事迹材料
2014/12/16 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
JavaScript获取URL参数的方法分享
2022/04/07 Javascript