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 01 Javascript
js 数组实现一个类似ruby的迭代器
Oct 27 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
Apr 12 Javascript
js猜数字小游戏的简单实现代码
Jul 02 Javascript
JQuery设置文本框和密码框得到焦点时的样式
Aug 30 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
Oct 29 Javascript
高性能JavaScript循环语句和条件语句
Jan 20 Javascript
jQuery动态改变多行文本框高度的方法
Sep 07 Javascript
JavaScript基本语法_动力节点Java学院整理
Jun 26 Javascript
JS实现关键词高亮显示正则匹配
Jun 22 Javascript
Vue中对拿到的数据进行A-Z排序的实例
Sep 25 Javascript
使用layer.msg 时间设置不起作用的解决方法
Sep 12 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 文件上传类代码
2011/08/06 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
vue实现树形结构样式和功能的实例代码
2019/10/15 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
python的pdb调试命令的命令整理及实例
2017/07/12 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
python如何从文件读取数据及解析
2019/09/19 Python
详解Python3定时器任务代码
2019/09/23 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
单位领导证婚词
2014/01/14 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
助学贷款贫困证明
2014/09/23 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
成绩单家长意见
2015/06/03 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android