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

Wesley13
• 阅读 527

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

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
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
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
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
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Easter79 Easter79
2年前
Swift项目兼容Objective
!456.jpg(http://static.oschina.net/uploads/img/201509/13172704_1KcG.jpg"1433497731426906.jpg")本文是投稿文章,作者:一叶(博客(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2F00red
Wesley13 Wesley13
2年前
ES6简介
ECMAScript6入门《ECMAScript6入门(阮一峰(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.ruanyifeng.com%2F) 著)》 http://es6.ruanyifeng.com/(https://
Stella981 Stella981
2年前
React技术栈及前端技术总结
React技术栈及前端技术总结基础ECMAScript6(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.ecmascript.org%2F)阮一峰的《ECMAScript6入门》(https://www.oschi
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
4个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这