ECMAScript 教程
认识ECMAScript:
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。
ECMAScript 规范定义了一种脚本语言实现应该包含的内容,但是,因为它是可扩充的,所以其实现所提供的功能与这个最小集相比可能变化很大。 ECMAScript本身并不是一种脚本语言。正如在 Web 应用程序中执行有用操作的 bean 集合(例如,Netscape 的 AWT)是 Sun 的 JavaBean 规范的一种实现一样,JavaScript 是 ECMAScript 规范的一种实现。
ECMAScript教程结构概述:
本教程共由7个章节构成,详细讲述了ECMAScript的基础使用方法并附带了大量实例辅助您的学习,让您轻松掌握ECMAScript。
本教程包含:
ECMAScript的发展及学习前的准备:
1995年12月 太阳公司(SUN)与网景通讯公司(Netscape)一起引入了JavaScript。
1996年03月 网景通讯公司发表了支持JavaScript的网景导航者2.0。
1996年08月 由于JavaScript作为网页的客户面脚本语言非常成功,微软将之引入了Internet Explorer3.0,取名JScript。
1996年11月 网景通讯公司将JavaScript提交给欧洲计算机制造商协会进行标准化。
1997年06月 ECMA-262的第一个版本于被欧洲计算机制造商协会采纳。并将 ECMA-262 标准取名为 ECMAScript。
* JavaScript 和 JScript 与 ECMAScript 相容,但包含超出 ECMAScript 的功能。
ECMAScript 永远不会被制订成一种静态规范。随着 ECMAScript 实现的发展,一些特征将被提议包括到规范的下一个版本中。人们正在开发基于 ECMAScript 的工具。ECMAScript 与其他标准和技术的结合正在引发一些新的发展方向的思想。
在您开始学习ECMAScript之前,您应该对以下知识有基本的了解:
《HTML 教程》
《CSS 教程》
本教程对ECMAScript标准进行了有效的解读,所有新增的语法知识(包括即将发布的 ES7)都给予了详细介绍,并且紧扣业界开发实践,给出了大量简洁易懂、可以即学即用的示例代码。本教程为初级难度,适合对 ES5 已经有所了解的读者,用来提高水平,了解这门语言的最新发展;也可当作参考手册,查寻 ES6/ES7 新增的语法点。
ECMAScript的特性:
ECMAScript的语言特性和Java、C、Perl都有许多相似之处,其中不少特性都是从这些语言借鉴而来。
和Java一样,ECMAScript区分大小写,注释的格式相同,通过{}确定代码块,原始数据类型存储在堆栈,对象的引用存储在堆中 。
ECMAScript是一种松散的语言,ECMAScript通过var操作符声明变量,并且不限类型,例如var n = 25,那么n就是数字类型,var n = "string" ,那么n就是String类型 。
在每一行代码后,可以不写分号,ECMAScript自动认为该行的末尾为该行代码的最后;ECMAScript中的变量可以不用初始化,在幕后系统将自动完成初始化操作 。
同一变量可以赋予不同类型的数据;变量的第一个字符只能是字母、下划线或$ ,其他的字符可以是下划线、$、或任意的字母、数字、字符 。
和其他语言一样,变量最好遵循驼峰书写法,或Pascal表示法、或匈牙利表示法。
和大多数语言不同的是, ECMAScript 变量在使用之前可以不必声明,系统会自动将该变量声明为全局变量,例如var m = " Good " ; n = m + " Morning " ; alert(n)输出结构是 " Good Morning " 。
在大多数语言里,String是对象,在ECMAScript中却是原始数据类型 。
相关网址:
官方文件
- ECMAScript® 2015 Language Specification: ES6语言规格
- ECMAScript Current Proposals: ECMAScript当前的各种提案
- ECMAScript® 2016 Language Specification: ECMAScript 2016草案
工具
- Babel, Babel Handbook: Babel的用法介绍
- Google, traceur-compiler: Traceur编译器
- Casper Beyer, ECMAScript 6 Features and Tools
- Stoyan Stefanov, Writing ES6 today with jstransform
- ES6 Module Loader, ES6 Module Loader Polyfill: 在浏览器和node.js加载ES6模块的一个库,文档里对ES6模块有详细解释
- Paul Miller, es6-shim: 一个针对老式浏览器,模拟ES6部分功能的垫片库(shim)
- army8735, Javascript Downcast: 国产的ES6到ES5的转码器
- esnext, ES6 Module Transpiler:基于node.js的将ES6模块转为ES5代码的命令行工具
- Sebastian McKenzie, BabelJS: ES6转译器
- SystemJS, SystemJS: 在浏览器中加载AMD、CJS、ES6模块的一个垫片库
- Modernizr, HTML5 Cross Browser Polyfills: ES6垫片库清单
- Facebook, regenerator: 将Generator函数转为ES5的转码器
除了本教程,您还可以在w3cschool上学习: