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检测Firefox浏览器是否启用了Firebug的代码
Dec 28 Javascript
javascript学习笔记(六)数据类型和JSON格式
Oct 08 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
Feb 18 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
May 05 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
May 24 Javascript
如何写好你的JavaScript【推荐】
Mar 02 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
Mar 08 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
Apr 20 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
May 31 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
May 07 Javascript
JS数组方法push()、pop()用法实例分析
Jan 18 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 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
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
xmlHTTP实例
2006/10/24 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
[01:00:04]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第二局
2016/02/26 DOTA
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
python实现银行管理系统
2019/10/25 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
python识别验证码图片实例详解
2020/02/17 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
super()与this()的区别
2016/01/17 面试题
数据员岗位职责
2013/11/19 职场文书
学校安全教育制度
2014/01/31 职场文书
网管求职信
2014/03/03 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python