ECMAScript,简称ES,是由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)按照ECMA-262和ISO/IEC 16262标准制定的一种脚本语言规范。html
JavaScript是按ECMAScript规范实现的一种脚本语言,其余的还有JScript、ActionScript。java
这三种语言还提供了ECMA规范外的额外功能。mysql
截止到2017年年末,ECMAScript共发布了8个版本:android
1997年06月:发布首版。c++
1997年06月:修改规范彻底符合ISO/IEC 16262国际标准。es6
1999年12月:增长正则、更好的文字处理、新的控制语句、try/catch异常处理、更加明确的错误定义,数字输出格式等等。ajax
放弃发布。spring
2009年12月:完善了ECMAScript 3版本、增长"strict mode,"(严格模式)、以及新的功能,如getter和setter、JSON库支持和更完整的对象属性。sql
2011年06月:使规范更符合ISO/IEC 16262:2011第三版。chrome
2015年06月:第六版的名字有不少,能够叫ECMAScript 6(ES6),也能够叫ECMAScript 2015(ES2015)。
此版本增长了很是重要的东西:let、const、class、modules、 arrow functions,、template string, destructuring, default, rest argument、binary data、promises等等。
规范地址:http://www.ecma-international.org/ecma-262/6.0/
ES6及以上的教程可参考Babel提供的: https://babeljs.io/learn-es2015/
2016年06月:也被称为ECMAScript 2016。完善ES6规范,还包括两个新的功能:求幂运算符(*)和array.prototype.includes方法。
规范地址:http://www.ecma-international.org/ecma-262/7.0/
2017年06月:增长新的功能,如并发、原子操做、Object.values/Object.entries、字符串填充、promises、await/asyn等等。
规范地址:http://www.ecma-international.org/ecma-262/8.0/
JS的每隔一段时间就会出新的特性,而浏览器只有不断的升级才能知足这些,并且同一个浏览器各版本对新特性的支持状况也不同。
网站:https://caniuse.com/ 提供了查看某个功能浏览器的支持状况。
如es6规范新增长的arrow function(箭头函数)的支持以下:
能够看到IE全部版本彻底不支持,chrome 45版本才开始支持。
想使用JS的新特性,又想兼容旧浏览器版本,那么就须要一种转换工具:把JS的新特性代码转换为旧浏览器能够支持的JS代码。而Babel就是这么一个工具。
Babel,官方介绍一个JavaScript编译器。说简单点就是把使用ES6及以上的特性的代码转换为对应的ES5代码,以使旧浏览器能够运行。
Babel除了自身提供Babel built-ins外,还提供了其余构建工具的版本,本示例以gulp为例。
1) 安装gulp-babel
2) 编写一段ES6的代码
建立一个app.js文件,并写入如下代码:
3) 编写gulp文件
4) 运行gulp后的结果
Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS同样轻松,由于 ...
本文引用自:Cloudera Hadoop什么是CDH及CDH版本介绍http://www.aboutyun.com/thread-6788-1-1.html(出处: about云开发) 云技术新兴的 ...
MYSQL版本介绍 mysql分alpha,beta,rc,GA四个版本. alpha 暗示这是一个以展现新特性为目的的版本,存在比较多的不稳定因素,还会向代码中添加新新特性beta 之后的beta ...
前言 从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为表明的家族软件,占据了大数据处理的广阔地盘.开源界及厂商,全部数据软件,无一不向Hadoop靠拢.Hadoop也从小众的高富帅领域 ...
转自Ubuntu版本介绍 常常有人问起Ubuntu的版本选择问题,论坛中虽有帖子说起,但不是很详细,不集中,我就尝试把Ubuntu上的这点东东翻译一下,供你们参考,水平有限,敬请包涵.指正. Ubu ...
Linux主要发行版本介绍 1.Red Hat Linux Red Hat是一个比较成熟的Linux版本,不管在销售仍是装机量上都比较可观.该版本从4.0开始同时支持Intel.Alpha及Sparc ...
原文:JavaScript Date对象介绍 Date 日期和时间对象 1. 介绍 Date对象,是操做日期和时间的对象.Date对象对日期和时间的操做只能经过方法. 2. 构造函数 2.1 new ...
记录下吧!以避免之后下载时候又不知道下载那个: Eclipse IDE for Java Developers 是为java开发的 Eclipse IDE for Java EE Developers ...
一.概述 在Android Studio下载官网上,有以下介绍: ` Android Studio's built-in update mechanism can be set to receive ...
今天学习gulp时候,用到gulp-uglify压缩js模块,遇到的一个问题-当用gulp.watch来监听js文件的变更时出现重复压缩的问题 目录结构以下: gulpfile.js代码以下: var ...
PIO与DMA 有必要简单地说说慢速I/O设备和内存之间的数据传输方式. PIO咱们拿磁盘来讲,很早之前,磁盘和内存之间的数据传输是须要CPU控制的,也就是说若是咱们读取磁盘文件到内存中,数据要通过C ...
[.net 面向对象编程基础] (20) 委托 上节在讲到LINQ的匿名方法中说到了委托,不过比较简单,没了解清楚不要紧,这节中会详细说明委托. 1. 什么是委托? 学习委托,我想说,学会了就感受简 ...
想必不少开发者和咱们同样,遇到过许多UnsatisfiedLinkError的困难,着实使人头疼,如今总结一下,但愿能帮助更多的人. 常见错误 lib库不一样目录下的SO文件良莠不齐. lib库目录下的 ...
1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其余http请求方法,例如 ...
页面展现效果. 页面代码: <%@ page contentType="text/html;charset=UTF-8" language="java" ...
WinCE开机启动Logo使用Eboot读取NandFlash中的图片数据,而后显示的方式.对于开机logo的方式网友http://jazka.blog.51cto.com/809003/664131 ...
hust$ c++filt _ZN1AC2Ev hust$A::A()
0.WAS学习地址: http://www.open-open.com/doc/list/276?pn=1http://www.doc88.com/p-7498799200332.htmlhttp:/ ...
属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操做时服务协定的一部分,以及传输对象的定义.若是已经有所了解, ...