Appearance
javascript的版本
元信息
- 目标:理清 JavaScript 与 ECMAScript 的关系,会用 ES5/ES6/ES2015 等版本术语准确指称,理解兼容性与转译(transpile)为何存在
- 关键概念:ECMAScript、ECMA-262、ES5、ES6、ES2015、转译、babel、标准化
- 关联阶段:cp3
- 常见误区:以为 JavaScript 与 ECMAScript 是两种语言(前者是后者的实现与商标名);把 ES6 当一个精确版本号(它是泛称,正式版名是 ES2015);以为新语法浏览器都不支持所以要等(可用 babel 转译向后兼容)
传统的 javascript
- 作为一种页面脚本语言,最初是由浏览器厂商发明和引入,目的是为页面增添各种交互行为,如信息提示、数据检验、页面特效等等。因此语法较为简单,语言内置的特性较少
- 各大浏览器厂商均推出了自己的网页脚本版本,如netscape的javascript、微软的jsascript等。
- 由于各种版本的网页脚本均提供不同的语法及特性,兼容性成为开发者面临的重要问题
- 更多参考
JavaScript 和 ECMAScript 的关系
两者之间的关联
- 1996年,Netscape 网景公司开发了 JavaScript ,并决定将其提交给标准化组织 ECMA,目的是希望这种语言能够成为国际标准。
- 1997年,ECMA 正式发布 262 号标准文件(ECMA-262),并将这种语言称为 ECMAScript,这个版本就是 ECMAScript1.0 版。
为什么不统一称为JavaScript?
- 商标版权问题:根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,并且 JavaScript 本身也已经被 Netscape 公司注册为商标。
- 保持标准的开放和中立性:ECMA想告诉大家,这门语言的制定者是ECMA,而不是 Netscape网景公司,从而有利于保证这门语言的开放性和中立性。
ECMAScript
- 随着WEB网络的高速发展,javascript逐渐演化加入了不少语言特性,成为WEB前端的重要编程语言
- 为了更好的推动javascript的发展,并且解决兼容性问题,由Ecma国际对javascript语言进行了标准化工作,形成了所谓ECMAScript
- ECMAScript 3 是一个比较通行的标准,各现代浏览器均能支持。但语言内置提供的特性仍然较少,不利于编写复杂程序
- 更多参考
ECMAScript 6 或 ECMAScript 2015
- ES6 是 ECMAScript 的一次重要改进。ES6增添了许多必要的特性,例如:模块和类,以及一些实用特性,例如Maps、Sets、Promises、生成器(Generators)等
- ES6 使得Javascript更像一门程序设计语言,而不是脚本语言
- ES6 借助于 node.js 运行环境,已经可以用于除浏览器之外的环境,如WEB服务端、桌面等
- ES6 虽然不能直接运行在浏览器环境中,但借助于 babel 等语言转译(transpile)工具,可以转译为ES4或ES3,从而运行在当前的主流浏览器中
- 更多参考
小结
- ES5 是一个泛型名称(泛指 6.0 大版本以前的 JavaScript 标准的统称,概念范围基本等同于ECMAScript5.1版)
- ES6 是一个泛型名称(泛指 6.0 版以后的 JavaScript 的下一代标准的统称,概念范围涵盖了 ES2015、ES2016、ES2017... 等等)
- ES2015 则是正式版本名称,特指2015年发布的正式版本的语言标准(概念范围等同于ES6.0版)
- javacript仍然在不断的演化和发展中,比如:ES7、ES8
- 更多参考
js的前景与未来
js以其轻量易上手的特点开始,逐渐发展壮大,融合了结构化开发、面向对象OOP、函数式编程FP、网络开发如异步并发等多种风格及特性
- Web时代的唯一前、后端通用的应用开发语言
- AI时代,与python并驾齐驱的应用开发语言