JavaScript是由Netscape Communications Corporation(网景公司)程序员Brendan Eich(布兰登.艾克)于1995年创造出来的. Eich只用了10天就开发出了这门脚本语言, 最初命名为Mocha.
1995年9月网景公司在自己的Netscape Navigator浏览器2.0中将这门语言改名为LiveScript. 同年12月, 网景公司为了将这门语言搭上Java这个编程语言”热词”, 随后又改名为JavaScript, 但是这门语言与Java没有任何关系. 随后JavaScript在浏览器上大获成功, 不久后微软公司在自己的Internet Explorer浏览器上推出了JScript, 与网景公司进行同台竞争. JScript也是一种JavaScript的实现, 这两个的语言版本的共存使得浏览器的语言标准化的缺失. 微软在自己的网页技术上加入一些的自己的专属方法, 使得网页在不同的浏览器的效果呈现出的不同的效果, 程序员写一份代码无法在不同的浏览器上呈现出相同的效果, 对于相应的浏览器必须写兼容相应浏览器的代码. 语言实现的不同专有化DOM(文档对象模型)的差异, 成为了网络上普及JavaScript的阻碍.
终于在1996年11月, 网景公司正式向ECMA(欧洲计算机制造商协会)提交语言标准. 1997年6月, ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262.ECMA标准. 流程以循环方式运行 - ECMAScript 2于1998年发布, ECMAScript 3于1999年发布(演变为今天的现代JavaScript). 尽管微软开始用JScript语言实现一些提议, 但很明显微软不会在Internet Explorer中实现JavaScript. 2005年, Eich和Mozilla加入ECMA协助E4X(ECMA-357), 与Macromedia(被Adobe收购)合作, 他们正致力于在ActionScript 3中实施E4X. 这种合作的目标是标准化AS3中的内容并在SpiderMonkey中实现它. 因此, Adobe发布了Tamarin, 一个源自AVM2的开放课程项目.
开源社区和开发者社区也在努力彻底改变JavaScript以及可以用它做些什么, 社区的影响达到了顶峰, Jesse James Garrett于2005年发布了一篇论文, 其中描述了JavaScript支持的一组技术作为支柱. 他创造了“Ajax”这个词. 该文引发了大量开发人员倾向于JavaScript以及围绕它的开源社区和库. 此外, jQuery, Prototype和Dojo是新发布的库之一. Ajax的优势使JavaScript成为人们关注的焦点, 并带来了更多专业的编程注意力. 结果是全面的框架和库的增加, 以及在Web浏览器之外增加JavaScript的使用, 正如服务器端JavaScript平台的激增.
截至2016年, 统计数据显示, 约92%的网站使用JavaScript - 其中包括一些全球最大的网站, 如Google和Facebook. 并且由于JavaScript, 使这些网站成为现实的元素是可能的. 例如, 如果没有JavaScript, 我们就不会拥有我们习以为常的实时通知. 今天, JavaScript仍然无处不在 - 它是最常用的客户端脚本语言. JavaScript被写入HTML文档, 并以许多独特的方式实现与网页的交互. 例如, 由于JavaScript, 我们可以自动安排约会和玩在线游戏. 此外, 诸如Node.js之类的新开发允许在服务器端使用JavaScript, 而诸如HTML5之类的API允许控制用户媒体和其他设备功能.
JavaScript的组成部分
- ECMAScript, 描述了该语言的语法和基本对象
- DOM(文档对象模型), 描述了处理网页内容的方法和接口
- BOM(浏览器对象模型), 描述了与浏览器进行交互的方法和接口
JavaScript的基本特点
JavaScript通常缩写为JS, 是一种高级的, 解释执行的编程语言. JavaScript是一门基于原型和函数先行的语言, 是一门多范式的语言, 它支持面向对象编程, 命令式编程, 以及函数式编程. 随着最新的HTML5和CSS3语言标准的推行它还可以用于游戏, 桌面和移动应用程序的开发和在服务器端网络环境运行, 如Node.js
JavaScript由ECMA通过ECMAScript实现语言的标准化, 已经被世界上绝大多数浏览器所使用, 也被世界上的主流浏览器(Chrome, FireFox, Opera, Safari, IE)支持.
浏览器内核
既然谈到了浏览器, 就不得不谈谈现在的主流浏览器的内核, 浏览器内核可以分为两部分: 渲染引擎和JS引擎. 最开始渲染引擎和JS引擎并没有区分的很明确, 后来JS引擎(最著名的JS引擎就是Google的V8引擎, V8引擎也促进了后来Node.js的诞生)越来越独立, 内核倾向于只指渲染引擎.
- Chrome浏览器内核: 统称为Chromium内核或Chrome内核, 以前是Webkit内核, 现在是Blink内核
- FireFox浏览器内核: Gecko内核
- Opera浏览器内核: 最初是自己的Presto内核, 后与Google一起研发内核, 使用过Webkit内核, 现在是Blink内核
- Safari浏览器内核: Webkit内核
- IE浏览器内核: Trident内核