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实现根据身份证号读取相关信息
Dec 17 Javascript
JS打开新窗口防止被浏览器阻止的方法
Jan 03 Javascript
JavaScript 对象深入学习总结(经典)
Sep 29 Javascript
jQuery实现图片文字淡入淡出效果
Dec 21 Javascript
jQuery实现点击水纹波动动画
Apr 10 Javascript
详解AngularJS 模块化
Jun 14 Javascript
vue中各选项及钩子函数执行顺序详解
Aug 25 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
Sep 21 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
Nov 10 Javascript
pm2发布node配置文件ecosystem.json详解
May 15 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
Sep 12 Javascript
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
php中对xml读取的相关函数的介绍一
2008/06/05 PHP
使用PHP获取网络文件的实现代码
2010/01/01 PHP
php网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
解析php中反射的应用
2013/06/18 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
python实现的各种排序算法代码
2013/03/04 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
python遍历目录的方法小结
2016/04/28 Python
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
解决TensorFlow程序无限制占用GPU的方法
2020/06/30 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
python Zmail模块简介与使用示例
2020/12/19 Python
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
旅游管理本科生求职信
2013/10/14 职场文书
电子邮箱格式怎么写
2014/01/12 职场文书
中文专业自荐书
2014/06/29 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
医德医风个人工作总结2014
2014/11/14 职场文书
2015政治思想表现评语
2015/03/25 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书