本文是根据阮一峰的 ECMAScript6入门 一书学习并结合当前工作情况,总结的各部分内容的实用性,及其应用场景分析.
No. | 章节名 | 实用性 | 应用场景 |
---|---|---|---|
2 | let和const命令 | 4 | 1.let和const都是当前js环境必不可少的两个指令,习得此节后对使用这两种指令更加娴熟,减少一些可能的代码错误,特别是对暂时性死区的了解. 2.对顶层对象有一定的了解. |
3 | 变量的解构赋值 | 3 | 1.阅读其他源码时,能够更好的理解; 2.参考第7点用途一节,目前用的比较多的是:函数参数的定义,函数参数的默认值,提取JSON数据. |
4 | 字符串的扩展 | 1 | 1.字符串的Unicode表示方法,可能能用于一些字符串处理的通用方法中; 2.模板字符串用于一些提示的方法生成; |
5 | 字符串的新增方法 | 2 | 1.判断字符串存在性的方法,可替代原来的正则表达式判断且更加直观; 2.字符串补全方法与localCompare()方法配合起来,可以用来判断不等长具有一定规则编码的判断. |
6 | 正则的扩展 | 1 | 1.正则表达式本身即具备较广泛的应用场景,它所提供的功能往往比需要且知道的还多; 2.扩展的内容中,以后行断言,Unicode属性类和具名组匹配,可能得到更多的应用; |
7 | 数值的扩展 | 1 | 1.对于一般业务场景能适用的改进较少.如Math.sign().多数方便的方法最好还是自己封装; 2.对于数学领域方法扩展较多,对于地图,作图等领域可能有较大帮助; |
8 | 函数的扩展 | 4 | 1.函数参数默认值和rest参数,使定义函数的时候更加方便; 2.箭头函数应用广泛,尤其注意箭头函数的this. 3.尾调用在高等用法中作用较大,日常逻辑中使用较少,但设计优化点值得注意. |
9 | 数组的扩展 | 3 | 1.扩展运算符在构建新数组的时候非常方便; 2.数组实例的entries方法,用于同时有遍历索引与值的场合; 3.flat,flatMap适用于一些解决复杂数据的场合; |
10 | 对象的扩展 | 2 | 解构赋值对于浅拷贝对象非常有用; |
11 | 对象的新增方法 | 3 | 1.Object.assign对于对象合并较为方便; 2.新标准支持的遍历方法更加方便; 3.Object.fromEntries在某些场合作用较大; |
12 | Symbol | 1 | 概念大致理解了,但目前不太确定何种场合使用. |
13 | Set和Map数据结构 | 2 | 1.Set在去除重复值的时候有些作用; 2.Map相对来说,可能不如对象直接使用方便; |
14 | Proxy | 1 | 暂未发现 |
15 | Reflect | 1 | 1.可以和Proxy共同发挥作用; 2.也可代替Object成为某些行为的函数形式; |
16 | Promise | 5 | ES6最重要的几个改进之一,相比于此前大大提升了开发便捷性.Promise可称为ES6异步操作的基本单位. 根据Promise的语法设置,对于所有可能的异步方法,最常见的ajax发送请求,以及解析图片,excel等,都建议以一个Promise的对象作为返回值. |
17 | Iterator和for...of循环 | 3 | 1.Iterator概念更适合理解,应用上帮助不是很大; 2.for...of语法较为实用; |
18 | Generator函数的语法 | 2 | ES6的几个重大改进之一,将操作遍历化.目前的实际工作中暂时没有想到十分合适应用场景,后续多留意 |
19 | Generator函数的异步应用 | 2 | 处理一些比较复杂的(多个的)异步应用帮助很大. 但建议,先通过使用Promise了解透这种思想后再使用这种更为复杂的思路. |
20 | async函数 | 4 | 目前来看,实现多个异步操作最完美的方案.当然,仍然有赖于Promise这个基本异步操作单位. |
21 | Class的基本语法 | 2 | 目前没有看出Class有什么比较广泛的用法. |
22 | Class的继承 | 1 | 同上一章一样,由于Class本身较少使用,故Class的继承也较少用到. |
23 | Module的语法 | 4 | 如概述中索引,Module最大的作用,就是使逻辑可以分离在不同的文件中,减少系统的整体复杂度. |
24 | Module的加载实现 | 2 | 浏览器加载比较适用. |
25 | 编程风格 | 4 | (本章内容主要参考Airbnb公司的js风格规范)本章介绍了多数皆可情况下的风格选择. |
总的来说,解构赋值,箭头函数,Promise及更进一步的async,Module的语法是ES6中比较重要的几个提升,可以更优雅的解决问题.