ES6入门学习实用性及应用场景分析

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

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

P2P技术揭秘.P2P网络技术原理与典型系统开发

Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E