JavaScript语言演变状况

2018-01-13大约17分钟

JavaScript的功能

JavaScript最常见的用途之一,就是实现更贴心、更人性化的网页操作体验。比如:

  • 点一个按钮,不用刷新页面
  • 实现动态的网页特效,比如通过左右箭头就可以切换浏览图片,复杂的导航菜单
  • 更高级的程序,比如网页版邮箱、地图、日历等等

另外一个用途,是用来开发手机、平板上的App,甚至开发电脑的桌面应用!

  • PhoneGapSencha TouchReact Native等框架,就可以用JavaScript开发移动端应用
  • Electron结合JavaScript,就可以开发桌面应用了。
  • 使用Node.js服务器端运行时环境,做后端服务器端开发。比如多来码的网站,前后端的跟网页生成有关主要功能,用的主要都是JavaScript语言!

正是由于JavaScript有如此多的功能,本课程才不愿意像大多数教程一样,把JavaScript和HTML/CSS一起讲,从而让你可以更专注JavaScript自身的语法和功能。

JavaScript语言演变

JavaScript诞生几个月后,Microsoft 随着 IE 3 推出了一个与之基本兼容的语言 JScript。又几个月后,Netscape 将 JavaScript 提交至 ECMA International(European Computer Manufacturers Association, 一个欧洲标准化组织), ECMAScript 标准第一版便在 1997 年诞生了。ECMA组织控制的标准控制着JavaScript语言的各个方面,帮助确保不同JavaScript版本的相互兼容性,因此JavaScript有时也称为ECMAScript。

随后在 1999 年以 ECMAScript 第三版的形式进行了更新,从那之后这个标准没有发生过大的改动。由于委员会在语言特性的讨论上发生分歧,ECMAScript 第四版尚未推出便被废除,但随后于 2009 年 12 月发布的 ECMAScript 第五版引入了第四版草案加入的许多特性。

第六版标准(ES6)已经于2015年六月发布,又称为ES2015。 ES6语法,引入了大量的语法特性,比如箭头函数、class关键字、字符串模板、let和const关键字、解构等等。这么多的语法特性,从很大程度上改善了最初JavaScript设计上的很多缺陷。不过等6年才有更新,更新周期太长,让人等得黄花菜都凉了

之后,ES的标准更新开始加快了脚步,每年都有一个版本发布,比如ES2016,ES2017都已经有了,只不过每次发布,加入的新特性比较少,也就是小步快跑的意思。

如果学完本课后,你从其他地方见到了一些本文从未提过的JavaScript语法,请不要惊讶,因为JavaScript语言的语法仍在不断更新。

ActionScript
最新版本ActionScript 3.0,是一种完全的面向对象的编程语言,功能强大,类库丰富,语法类似JavaScript的语言。
之前网上流行的动画、视频播放,很多都是用ActionScript开发的,而ActionScript也是符合ECMA标准的一门语言。
ECMA第四版标准其实就是ActionScript 3.0语言!

JavaScript与Java傻傻分不清?

JavaScript是编程语言中让人误解最深的语言。JavaScript的名字容易让人联想到和Java有什么联系,让人以为是JavaScript的子集或简化版。不仅许多不理解的人,甚至许多大的图书馆,都把Java的编程书和JavaScript的编程书放到一起。

其实JavaScript和Java原本是两种完全不一样的语言。在1995 年 Netscape 一位名为 Brendan Eich 的工程师创造了 JavaScript,随后在 1996 年初,JavaScript 首先被应用于 Netscape 2 浏览器上。最初的 JavaScript 名为 LiveScript,后来因为 Sun微系统公司 的 Java 语言的兴起和广泛使用,Netscape 出于宣传和推广的考虑,觉得改为JavaScript这个名字会更引人注目,于是将它的名字从最初的 LiveScript 更改为 JavaScript——尽管两者之间并没有什么共同点。这便是之后混淆产生的根源。

原来JavaScript和Java没一毛钱关系啊

我可以使用最新的JavaScript语法吗?

答案是当然的。

最新的JavaScript语法,所有的浏览器都支持吗?
不是,只有较新的浏览器才支持最新的JavaScript语法,所以并不是所有的JavaScript语法浏览器都能支持
浏览器不支持怎么办?
浏览器不支持的话,是无法在浏览器上直接运行的。
那让我用最新的语法,不是坑我吗?
虽然不能直接运行,但是有一个叫“Babel”的工具,可以将最新的JavaScript语法代码编译成老的语法代码,因此就能跑起来啦
写JavaScript代码写完,还要用编译器,感觉不太舒服
习惯就会发现,与新语法带来的好处相比,额外的工具带来的麻烦不值得一提。与其去忍受旧的JavaScript的不良设计,还不如用最新最好的语法来写程序呢
学JavaScript的语法同时也要学叫“Babel”的工具,是不是很难呢?
不用担心,在本课程里,教的主要是基础语法,不需要学习这些工具。以后用到的时候,才会再教呢