08 ES6 基本介绍

Posted zach0812

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08 ES6 基本介绍相关的知识,希望对你有一定的参考价值。

什么是ES6语法:

一、一个常见的问题是,ECMAScript 和 javascript 到底是什么关系?

要讲清楚这个问题,需要回顾历史。1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版。

该标准从一开始就是针对 JavaScript 语言制定的,但是之所以不叫 JavaScript,有两个原因。一是商标,Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经被 Netscape 公司注册为商标。二是想体现这门语言的制定者是 ECMA,不是 Netscape,这样有利于保证这门语言的开放性和中立性。

因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。日常场合,这两个词是可以互换的。

二、ES6 与 ECMAScript 2015 的关系:

ECMAScript 2015(简称 ES2015)这个词,也是经常可以看到的。它与 ES6 是什么关系呢?

2011 年,ECMAScript 5.1 版发布后,就开始制定 6.0 版了。因此,ES6 这个词的原意,就是指 JavaScript 语言的下一个版本。

但是,因为这个版本引入的语法功能太多,而且制定过程当中,还有很多组织和个人不断提交新功能。事情很快就变得清楚了,不可能在一个版本里面包括所有将要引入的功能。常规的做法是先发布 6.0 版,过一段时间再发 6.1 版,然后是 6.2 版、6.3 版等等。

但是,标准的制定者不想这样做。他们想让标准的升级成为常规流程:任何人在任何时候,都可以向标准委员会提交新语法的提案,然后标准委员会每个月开一次会,评估这些提案是否可以接受,需要哪些改进。如果经过多次会议以后,一个提案足够成熟了,就可以正式进入标准了。这就是说,标准的版本升级成为了一个不断滚动的流程,每个月都会有变动。

标准委员会最终决定,标准在每年的 6 月份正式发布一次,作为当年的正式版本。接下来的时间,就在这个版本的基础上做改动,直到下一年的 6 月份,草案就自然变成了新一年的版本。这样一来,就不需要以前的版本号了,只要用年份标记就可以了。

ES6 的第一个版本,就这样在 2015 年 6 月发布了,正式名称就是《ECMAScript 2015 标准》(简称 ES2015)。2016 年 6 月,小幅修订的《ECMAScript 2016 标准》(简称 ES2016)如期发布,这个版本可以看作是 ES6.1 版,因为两者的差异非常小(只新增了数组实例的includes方法和指数运算符),基本上是同一个标准。根据计划,2017 年 6 月发布 ES2017 标准。

因此,ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。本书中提到 ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”。

以上内容引用自《ECMAScript 6 入门》:http://es6.ruanyifeng.com/#docs/intro

三、一句话总结:

ES6ECMAScript 6的简写,ECMAScriptJavaScript的标准,ECMAScript 6泛指“下一代JavaScript语言”,具体每年发布的都有自己的专属名称,比如2015年发布的则为ESMAScript 2015.目前说的ES6语法,一般指的都是ESMAScript 2015版。

四、在小程序开发工具中开启ES6: 

在微信开发者工具中->详情->ES6转ES5,勾选上就可以了!

ES6语法:

这里只是为了微信小程序的学习做一些铺垫,所以只介绍到一些常用的语法。

定义变量的新关键字:

let:

技术图片

 

 注意: 在小程序中使用 let 依然会存在变量提升情况,(原因不是 let 的问题,而是微信小程序 在转化的时候 还是将let 转为了var )

技术图片

 

使用let 的话,就可以只在 当前代码块有效,

const:

 

技术图片

 

函数:

默认参数:

技术图片

箭头函数:

 技术图片

 

箭头函数总结:

1,使用 箭头将参数 和 函数体分开,

2,如果有一个参数,可以直接写这个参数,如果有多个参数,那么这多个参数 要用 ( ) 括起来,如果没有参数,那么直接写个括号即可,   

3,如果只需要返回一个值,那么可以直接 将返回值   写在 箭头右侧

 

Promise 风格的调用:  

promise 承诺的意思!!! 

技术图片

 

ES6 中有个类叫 Promise  ,它接收一个参数,参数是函数,  

 

这个函数呢,有两个参数 resolve ,和 reject ,这两个参数分别都是函数, (这两个参数不需要我们自己传,js引擎会帮我们传,)

 

如果你调用了 resolve 的话,那么就会调用 then 中  的函数,如果你调用了 reject 函数,那么就会调用 catch 中    函数,  

 

总结: resolve 接收 ,  reject 拒绝!!! --->  类似于 success  和 fail  

promise = new Promise(function (resolve ,reject){

  //如果执行了 resolve ,就会执行 下面的then 函数   

  //如果执行了 reject ,就会执行 下面  的 catch 函数 

})

promise.then( function(){

 

}).catch(function(){

 

})

技术图片

 

注: resolve 和 reject 只可能 执行一个,  

类:

技术图片

 

 

例如:  

技术图片

 

定义静态函数:

技术图片

 

技术图片

 

 

模块: 

在传统的JS中,是没有办法在多个js文件中互相导入的,这对于大型项目来说很不方便。因此ES6提供了一个模块的功能。要学会使用模块,只要掌握两个关键字export以及import即可。

export:

默认在一个js文件中写好的代码或者变量,是不能够给其他的文件使用的,如果想要被外部使用,那么需要使用export关键字。

技术图片

 

import:

以上文件进行export了,那么以后其他文件想要使用的,则需要从这个文件中把需要的进行import

技术图片

 

以上是关于08 ES6 基本介绍的主要内容,如果未能解决你的问题,请参考以下文章

30秒就能看懂的JavaScript 代码片段

Vuejs入门-----安装+基本语法学习笔记

vue2.0 代码功能片段

学习ES6系列:generator的基本认识和使用

Typescript的基本介绍

Huawei_Netconf_Ncclient