本文是根据阮一峰的 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中比较重要的几个提升,可以更优雅的解决问题.