《ES6深入浅出》学习笔记(三)
来源:互联网 发布:淘宝延长收货 花呗 编辑:程序博客网 时间:2024/06/05 05:45
解构 Destructuring
通常来说,你很可能这样访问数组中的前三个元素:
var first = someArray[0]; var second = someArray[1]; var third = someArray[2];
如果使用解构赋值的特性,将会使等效的代码变得更加简洁并且可读性更高:
var [first, second, third] = someArray;
数组与迭代器的解构
以上是数组解构赋值的一个简单示例,其语法的一般形式为:
[ variable1, variable2, ..., variableN ] = array;
这将为variable1到variableN的变量赋予数组中相应元素项的值。如果你想在赋值的同时声明变量,可在赋值语句前加入var、let或const关键字,例如:
var [ variable1, variable2, ..., variableN ] = array;let [ variable1, variable2, ..., variableN ] = array;const [ variable1, variable2, ..., variableN ] = array;
事实上,用变量来描述并不恰当,因为你可以对任意深度的嵌套数组进行解构:
var [foo, [[bar], baz]] = [1, [[2], 3]];console.log(foo);// 1console.log(bar);// 2console.log(baz);// 3
此外,你可以在对应位留空来跳过被解构数组中的某些元素:
var [,,third] = ["foo", "bar", "baz"];console.log(third);// "baz"
而且你还可以通过“不定参数”模式捕获数组中的所有尾随元素:
var [head, ...tail] = [1, 2, 3, 4];console.log(tail);// [2, 3, 4]
当访问空数组或越界访问数组时,对其解构与对其索引的行为一致,最终得到的结果都是:unde console.log([][0]);
// undefined
var [missing] = [];
console.log(missing);
// undefined,数组解构赋值的模式同样适用于任意迭代器:
function* fibs() { var a = 0; var b = 1; while (true) { yield a; [a, b] = [b, a + b]; } } var [first, second, third, fourth, fifth, sixth] = fibs(); console.log(sixth); // 5
0 0
- 《ES6深入浅出》学习笔记(三)
- 《ES6深入浅出》学习笔记(一)
- 《ES6深入浅出》学习笔记(二)
- ES6学习笔记(三)
- ES6学习笔记(三)
- 读(深入浅出ES6)系列笔记(三)
- ES6学习笔记(三)--字符串扩展
- VC深入浅出学习笔记(三)
- 《深入浅出WPF》学习笔记之三
- es6开发:ES6学习笔记
- 深入浅出ES6(三):生成器 Generators
- 深入浅出ES6(三):生成器 Generators
- 深入浅出ES6(三):生成器 Generators
- ES6学习笔记(三)字符串的扩展
- ES6学习笔记
- ES6学习笔记
- ES6学习笔记
- ES6学习笔记
- B-Spline
- Jquery非常不错的分页插件
- 斐波那契数的皮萨诺周期
- iOS Core Animation Advanced Techniques(中文翻译)
- 微信开发实战(3)—开发者公众号的交互原理
- 《ES6深入浅出》学习笔记(三)
- mybatis insert 数据 NullPointerException
- 【洛谷】P1888 三角函数
- OPENCV的一些常见函数备忘
- 基于Spring Boot、AngularJS、CSS3、HTML5的响应式文件浏览管理器
- 无线通讯及几种无线通讯之间区别
- php对文件的操作
- Apache Kafka:下一代分布式消息系统
- Hibernate 运行时发生Write operations are not allowed in read-only mode错误