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自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
Mar 28 Javascript
js猜数字小游戏的简单实现代码
Jul 02 Javascript
判断文档离浏览器顶部的距离的方法
Jan 08 Javascript
给before和after伪元素设置js效果的方法
Dec 04 Javascript
js判断复选框是否选中及选中个数的实现代码
May 30 Javascript
Node.JS利用PhantomJs抓取网页入门教程
May 19 Javascript
微信小程序实现保存图片到相册功能
Nov 30 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
Apr 17 Javascript
js之切换全屏和退出全屏实现代码实例
Sep 09 Javascript
element-ui 本地化使用教程详解
Oct 28 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
Oct 29 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
Dec 19 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
PR值查询 | PageRank 查询
2006/12/20 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
PHP实现的简单mock json脚本分享
2015/02/10 PHP
thinkphp分页集成实例
2017/07/24 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
jquery选择器中的空格与大于号>、加号+与波浪号~的区别介绍
2016/06/24 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
Python自动化操作实现图例绘制
2020/07/09 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
大学老师推荐信
2014/02/25 职场文书
党性心得体会
2014/09/03 职场文书
弄虚作假心得体会
2014/09/10 职场文书
擅自离岗检讨书
2014/09/12 职场文书
学生会个人总结范文
2015/02/15 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python