作者:李炎恢
JavaScript历史
大概在1992年,一家称作Nombas的公司开始开发一种叫做C--(C-minus-minus,简称Cmm)的嵌入式脚本语言。Cmm背后的理念很简单,一个足够强大可以替代宏操作(macro)的脚本语言,同时保持与C(和C++)中够的相似性,以便开发人员能很快学会。这个脚本语言捆绑在一个叫做CEnvi的共享软件产品中,它首次向开发人员展示了这种语言的威力。Nombas最终把Cmm的名字改成了ScriptEase。原因是后面的部分(mm)听起来过于“消极”,同时字母C“令人害怕”。现在ScriptEase已经成为了Nombas产品背后的主要驱动力。当Netscape Navigator崭露头角时,Nombas开发了个可以嵌入网页中的CEnvi的版本。这些早期的实验称为Espresso Page(浓咖啡般的页面),它们代表了每个在万维网上使用的客户脚本语言。而Nombas丝毫没有料到它的理念将会成为因特网的一块重要基石。
当网上冲浪越来越流行时,对于开发客户端脚本的需求也逐渐增大。此时,大部分因特网用户还仅仅通过28.8kbit/s的调制解调器来连接到网络,即便这时网页已经不断变得更大和更复杂。而更加加剧用户痛苦的是,仅仅为了简单的表单有效性验证,就要与服务器端进行多次的往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了30秒钟的处理后,看到的却是一条告诉你忘记填写一个必要的字段。那时正处于技术革新最前沿的Netscape,开始认真考虑一种开发客户端脚本语言来解决简单的处理问题。
当时工作于Netscape的Brendan Eich,开始着手为即将在1995年发行的Netscape Navigator 2.0开发一个称之为LiveScript的脚本语言,当时的目的是同时在浏览器和服务器端使用它。Netscape与Sun公司联手及时完成LiveScript实现。就在Netscape Navigator 2.0即将在正式发布前,Netscape将其更名为JavaScript,目的是为了利用这个因特网时髦词汇。Netscape的赌注最终得到回报,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个不同部分组成的:
JavaScript与Java的关系——没有关系
JavaScript可以做什么
用JavaScript可以做许多事情,使网页更具有交互性,给站点的用户提供更好、更令人兴奋的体验。JavaScript使你可以创建活跃的用户界面,当用户在页面间导航时向他们提供反馈。例如,你可能在一些站点上见过在鼠标指针停留时突出显示的按钮。 这是用JavaScript实现的,使用了一种称为翻转器(rollover)的技术可以使用JavaScript确保用户在表单中输入有效的信息,这可以节省你的业务时间和开支。如果表单需要进行计算,那么可以在用户机器上的JavaScript中完成,而不需要任何服务器端处理。可以使用JavaScript根据用户的操作即时创建定制的HTML页面。假设你正在运行一个旅行指南站点,用户点击夏威夷作为旅游目的地。你可以在一个新窗口中显示最新的夏威夷旅游指南。JavaScript可以控制浏览器,所以你可以打开新窗口、显示警告框以及在浏览器窗口的状态栏中显示定制的信息。JavaScript有一套日期和时间特性,可以生成时钟、日历和时间戳文档,JavaScript还可以处理表单、设置cookie,即时构建HTML页面以及创建基于Web的应用程序。
JavaScript不能做什么
Hello,JavaScriptWorld!
<script type='text/javascript'>
alert('Hello JavaScript')
</script>
开发环境
纯文本编辑器或IDE:Notepad++、UltraEdit
符合W3C的浏览器(推荐火狐浏览器):FireFox、IE 6.0+、 Opera 9.0+、 Google Chrome 1.0+
调试工具:FireFox下的FireBug、IE下的IE DeveloperToolbar等