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 通过name快速取值示例
Jan 24 Javascript
JSON字符串和对象之间的转换详解
May 26 Javascript
Jsonp post 跨域方案
Jul 06 Javascript
jQuery简单实现列表隐藏和显示效果示例
Sep 12 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
基于JS对象创建常用方式及原理分析
Jun 28 Javascript
浅谈JS中的常用选择器及属性、方法的调用
Jul 28 Javascript
js实现1,2,3,5数字按照概率生成
Sep 12 Javascript
详解浏览器缓存和webpack缓存配置
Jul 06 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
VUE注册全局组件和局部组件过程解析
Oct 10 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
Feb 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
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
php flv视频时间获取函数
2010/06/29 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
JavaScript this调用规则说明
2010/03/08 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
Python采集腾讯新闻实例
2014/07/10 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
python搜索包的路径的实现方法
2019/07/19 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
appium+python adb常用命令分享
2020/03/06 Python
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
yy结婚证婚词
2014/01/10 职场文书
安全事故检讨书
2014/01/18 职场文书
社区护士演讲稿
2014/08/27 职场文书
结婚十年感言
2015/07/31 职场文书