ES6基础知识入门

一、简介

ECMAScript 6.0(简称 ES6,也叫ES2015)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的发展经过了漫长的历史,下面先简单介绍一下它的发展历史。

1998年6月,ECMAScript 2.0版发布。
1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。
2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级。
2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。
2009年12月,ECMAScript 5.0版正式发布。
2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。
2013年3月,ECMAScript 6草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7。
2013年12月,ECMAScript 6草案发布。然后是12个月的讨论期,听取各方反馈。
2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015

它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为 企业级开发语言。ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念, 但是目前并不是所有的浏览器都支持ES6,下面罗列了一下浏览器对ES6的支持情况。

桌面端浏览器对ES6的支持情况
Chrome:51 版起便可以支持 97% 的 ES6 新特性。
Firefox:53 版起便可以支持 97% 的 ES6 新特性。
Safari:10 版起便可以支持 99% 的 ES6 新特性。
IE:Edge 15可以支持 96% 的 ES6 新特性。Edge 14 可以支持 93% 的 ES6 新特性。(IE7~11 基本不支持 ES6)
移动端浏览器对ES6的支持情况
iOS:10.0 版起便可以支持 99% 的 ES6 新特性。
Android:基本不支持 ES6 新特性(5.1 仅支持 25%)

二、基础用法

1、新的变量声明方式 let/const:
let声明一个值会被改变的变量 const声明一个值不会被改变的变量,也可以称之为常量,一旦声明,常量的值就不能改变
let与var区别:(1)let声明的变量只在当前的代码块内有效,var 声明的变量是在全局范围内有效
(2)let 只能声明一次 ,var 可以声明多次
(3)let 不存在变量提升,var 会变量提升

2、箭头函数
ES6允许使用箭头(=>)定义函数。=>不只是关键字function的简写,它还带来了其它好处。箭头函数与 包围它的代码共享同一个this,能帮你很好的解决this的指向问题。一般我们都会这样定义this,var self = this; 或var that = this这种引用外围this的模式。但借助=>,就不需要这种模式了。 箭头函数中的this是在定义函数的时候绑定,一般函数this是在执行函数的时候绑定

3、模版字符串
模板字符串相当于加强版的字符串,用反引号 “包裹起来,除了作为普通字符串,还可以用来 定义多行字符串,还可以在字符串中加入变量和表达式,变量名写在 ${} 中,${} 中可以放入 JavaScript 表达式。

4、模块化
在 ES6 前, 实现模块化使用的是 RequireJS 。 ES6 引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。 ES6 的模块化分为导出(export) @与导入(import)两个模块。 注意:import 语句只能在声明了 type=”module” 的 script 的标签中使用 <script type=”module”></script> export default 命令 在一个文件或模块中,export、import 可以有多个,export default 仅有一个。 export default 中的 default 是对应的导出接口变量。 通过 export 方式导出,在导入时要加{ },export default 则不需要。 export default 向外暴露的成员,可以使用任意变量来接收。

5、Promise
在promise之前代码过多的回调或者嵌套,可读性差、耦合度高、扩展性低。通过Promise机制, 扁平化的代码机构,大大提高了代码可读性;用同步编程的方式来编写异步代码,保存线性的 代码逻辑,极大的降低了代码耦合性而提高了程序的可扩展性。 说白了就是用同步的方式去写异步代码。

写在最后:有关更多ES6的一些基础知识建议大家去阅读阮一峰的《ECMAScript 6 入门》, 地址:http://es6.ruanyifeng.com/

本文来自投稿,不代表微擎百科立场,如若转载,请注明出处:https://www.w7.wiki/develop/2280.html

发表评论

登录后才能评论