大概在1992年,一家称做Nombas的公司开始开发一种叫作C--(C-minus-minus,简称Cmm)的嵌入式脚本语言。 Cmm背后的理念很简单:一个足够强大能够替代宏操做(macro)的脚本语言,同时保持与C(和C++)中够的类似性,以便开发人员能很快学会。 这个脚本语言捆绑在一个叫作CEnvi的共享软件产品中,它首次向开发人员展现了这种语言的威力。 Nombas最终把Cmm的名字改为了ScripEase。缘由是后面的部分(mm)听起来过于“消极”,同时字母C“使人惧怕”。 如今ScriptEase已经成为了Nombas产品背后的主要驱动力。 当Netscape Navigator崭露头角时,Nombas开发了个能够嵌入网页中的CEnvi的版本。 这些早期的试验称为Espresso Page(浓咖啡般的页面),它们表明了每一个在万维网上使用的客户端脚本语言。 而Nombas丝毫没有料到它的理念将会成为因特网的一块重要基石。javascript
当网上冲浪愈来愈流行时,对于开发客户端脚本的需求也逐渐增大。此时,大部分因特网用户还仅仅经过28.8kbit/s的调制解调器来链接到网络,即使这时网页已经不断地变得更大和更复杂。而更加加重用户痛苦的是,仅仅为了简单的表单有效性验证,就要与服务器端进行屡次的往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了30秒钟的处理后,看到的倒是一条告诉你忘记填写一个必要的字段。那时正处于技术革新最前沿的Netscape,开始认真考虑一种开发客户端脚本语言来解决简单的处理问题。java
当时工做于Netscape的Brendan Eich,开始着手为即将在1995年发行的Netscape Navigator 2.0开发一个称之为LiveScript的脚本语言,当时的目的是同时在浏览器和服务器(原本要叫它LiveWire的)端使用它。Netscape与Sun公司联手及时完成LiveScript实现。就在Netscape Navigator 2.0即将正式发布前,Netscape将其改名为JavaScript,目的是为了利用Java这个因特网时髦词汇。Netspace的赌注最终获得回报,JavaScript今后变成了因特网的必备组件。程序员
由于JavaScript 1.0如此成功,Netscape在Netscape Navigator 3.0中发布了1.1版。恰巧那个时候,微软决定进军浏览器,发布了IE 3.0 并搭载了一个JavaScript的克隆版,叫作JScript(这样命名是为了不与Netscape潜在的许可纠纷)。微软步入Web浏览器领域的这重要一步虽然令其声名狼藉,但也成为JavaScript语言发展过程当中的重要一步。编程
在微软进入后,有3种不一样的JavaScript版本同时存在:Netscape Navigator 3.0中的JavaScript、IE中的JScript以及CEnvi中的ScriptEase。与C和其余编程语言不一样的是,JavaScript并无一个标准来统一其语法或特性,而这3种不一样的版本偏偏突出了这个问题。随着业界担忧的增长,这个语言标准化显然已经势在必行。浏览器
1997年,JavaScript 1.1做为一个草案提交给欧洲计算机制造商协会(ECMA)。第39技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”(http://www.ecma-international.org/memento/TC39.htm)。由来自Netscape、Sun、微软、Borland和其余一些对脚本编程感兴趣的公司的程序员组成的TC39锤炼出了ECMA-262,该标准定义了叫作ECMAScript的全新脚本语言。安全
在接下来的几年里,国际标准化组织及国际电工委员会(ISO/IEC)也采纳ECMAScript做为标准(ISO/IEC-16262)。今后,Web浏览器就开始努力(虽然有着不一样程度的成功和失败)将ECMAScript做为JavaScript实现的基础。服务器
尽管ECMAScript是一个重要的标准,但它并非JavaScript惟一的部分,固然,也不是惟一被标准化的部分。实际上,一个完整的JavaScript实现是由如下3个不一样部分组成的cookie
ECMAScript、DOM、BOM将是咱们以后课程的主要内容。网络
尽管名字中有Java,可是JavaScript和Java几乎没有什么共同点。Java是一种全功能的编程语言,是由Sun公司开发和推广的。Java是C和C++编程语言以后的又一种主流语言,程序员可使用它建立完整的应用程序和控制消费电子设备。与其余语言不一样,Java宣称具备跨平台兼容性;也就是说,程序员应该可以编写出能够在全部种类的机器上运行的Java程序,不管机器运行的是Windows、Mac OS X仍是任何风格的UNIX。但实际上,Java不老是可以实现这个梦想,由于Sun和微软公司在这种语言的发展方向方面有很大的分歧。微软公司首先试图以本身的方式将Java集成到Windows中(Sun认为,这种方式使Java在Windows上以一种方式工做,而在其余机器上以另外一种方式工做,从而破坏了Java的跨平台兼容性);随后,微软公司从Windows中彻底去除了Sun的Java,而建立了本身的类Java语言:C#。通过两公司之间的一轮诉讼以后,Sun占据了上风,如今能够在Windows(或Linux)上安装Sun的最新Java版本(http://www.java.com/getjava/)。Mac OS X操做系统在安装时会附带Java。编程语言
用JavaScript能够作许多事情,使网页更具交互性,给站点的用户提供更好、更使人兴奋的体验。JavaScript使你能够建立活跃的用户界面,当用户在页面间导航时向他们提供反馈。例如,你可能在一些站点上见过在鼠标指针停留时突出显示的按钮。这是用JavaScript实现的,使用了一种称为翻转器(rollover)的技术 可使用JavaScript确保用户在表单中输入有效的信息,这能够节省你的业务时间和开支。若是表单须要进行计算,那么能够在用户机器上的JavaScript中完成,而不须要任何服务器端处理。你应该知道一种区分程序的方式:在用户机器上运行的程序称为客户端(client-side)程序;在服务器上运行的程序(包括后面要讨论的CGI)称为服务器端(server-side)程序。 可使用JavaScript根据用户的操做即时建立定制的HTML页面。假设你正在运行一个旅行指南站点,用户点击夏威夷做为旅游目的地。你能够在一个新窗口中显示最新的夏威夷旅游指南。JavaScript能够控制浏览器,因此你能够打开新窗口、显示警告框以及在浏览器窗口的状态栏中显示定制的消息。JavaScript有一套日期和时间特性,能够生成时钟、日历和时间戳文档。 JavaScript还能够处理表单、设置cookie、即时构建HTML页面以及建立基于Web的应用程序。
JavaScript是一种客户端(client-side)语言;也就是说,设计它的目的是在用户的机器上执行任务,而不是在服务器上。所以,JavaScript有一些固有的限制,这些限制主要出于安全缘由:
咱们的第一个脚本:最经典的HelloWorld程序!
<script type="text/javascript"> document.write("<h2>Hello,JavaScriptWorld!</h2>"); </script>
本篇及后续系列源自李炎恢老师