1.1 JavaScript概述
JavaScript语言是NetScape公司为其Web浏览器Navigator开发的脚本语言,其前身称为LiveScript。自从Sun公司推出Java语言之后,Netscape公司引进了有关Java语言的概念,将原有的LiveScript重新进行设计并重命名为JavaScript。
1.1.1 JavaScript是什么
JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言,它是通过嵌入或导入到标准的HTML文档中实现的。把JavaScript脚本语言与HTML、CSS结合起来,可以在一个网页中链接多个对象,实现与网络客户的交互作用。
从名称上看,JavaScript似乎与Java语言有很密切的关系。的确,JavaScript语言与Java语言存在着一定的联系,但它们之间的联系并不是想象中的那样紧密。JavaScript与Java的区别体现在以下两个方面。
(1)它们分别是两个公司开发的不同产品。JavaScript是Netscape公司的产品,其设计的目的旨在扩展Netscape Navigator浏览器的功能,是一种可以嵌入网页中的基于对象和事件驱动的解释性语言;而Java则是Sun公司推出的新一代面向对象的程序设计语言,特别适合于Internet应用程序开发。
(2)JavaScript是一种基于对象的脚本语言,它可以嵌入HTML文档中,用来实现用户与浏览器的交互以及浏览器与服务器的异步通信。Java则是一种真正的面向对象的程序设计语言,即使是开发简单的程序,也必须基于类来创建对象。
ECMA(欧洲计算机制造协会)于1999 年在JavaScript 1.5 的基础上制定了ECMAScript程序语言规范(ECMA-262标准),该规范被ISO(国际标准化组织)采纳并作为浏览器使用的脚本程序的统一标准。
当NetScape公司把JavaScript成功地应用于Navigator浏览器之后,Microsoft公司推出了应用于Internet Explorer浏览器的脚本语言并将其命名为JScript。JScript与JavaScript的大部分功能是相同的,不过也有个别内容是不一样的。
当ECMAScript标准发布之后,NetScape公司和Microsoft公司都承诺,以后为其浏览器脚本语言开发新的功能时都将遵循该标准。目前JavaScript的最新版本为2.0,JScript的最新版本为5.7,两者都遵循尚未最后定稿的ECMAScript-262标准版本4。
1.1.2 JavaScript的特点
JavaScript主要用于在HTML文档中编写客户端脚本代码。当用户在客户端浏览器中打开HTML网页时,浏览器就会执行该网页内嵌或导入的JavaScript代码,用户通过交互式操作更改网页的内容和外观,实现了仅用HTML和CSS所不能实现的效果。
概括地讲,JavaScript具有以下特点。
(1)简单性。JavaScript是一种脚本编写语言,它采用小程序段的方式实现程序设计。与其他脚本语言一样,JavaScript也是一种解释性语言,它提供了一个简单、方便的开发过程。JavaScript的基本结构形式与C、C++、Visual Basic、Delphi十分类似,但不像这些语言一样需要事先进行编译,而是在程序运行过程中一边解释一边执行。JavaScript与HTML、CSS结合在一起,可以实现用户的交互式操作。JavaScript脚本语句的解释执行由Web浏览器负责,不需要额外的开发环境。
(2)动态性。JavaScript是动态的,它可以直接对用户操作做出响应,不需要经过Web服务器程序处理。
(3)跨平台性。JavaScript语言依赖于Web浏览器本身,而与操作环境无关,只要在计算机上能运行支持JavaScript的浏览器,就可以正确地执行JavaScript程序。
(4)基于对象。在JavaScript脚本代码中,可以调用其自身提供的对象或其他语言创建的对象,并采用面向对象的编程方法来设置对象的属性、调用对象的方法,以完成所需功能。
(5)事件驱动。JavaScript对用户操作的响应是采用以事件驱动的方式进行的。所谓事件,通常是指在网页中执行了某种操作所产生的动作。例如,单击鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起事件响应,响应的具体内容则需要通过编写事件处理程序来实现。
(6)节省与服务器端的交互时间。随着Internet的迅速发展,有许多Web服务器提供的服务需要与访问者进行交互,以检验访问者的身份及其可使用的服务内容等,这项工作通常由在服务器端编写相应的接口程序与用户进行交互来完成。很显然,通过网络与用户的交互过程不仅增大了网络的通信量,也影响了服务器的服务性能。JavaScript是一种基于客户端浏览器的语言,当用户在浏览器中填写表单时,验证的交互过程可以通过浏览器对嵌入或导入HTML文档的JavaScript代码进行解释执行来完成,即使是必须调用服务器端验证程序,也可以通过Ajax技术以异步请求的方式把用户输入并通过验证的信息提交给远程服务器进行处理,从而极大地减小了服务器的开销。