2.2.2 JavaScript技术
JavaScript是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。
它最初由Netscape的Brendan Eich设计。JavaScript是Oracle(甲骨文)公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含3个部分:ECMAScript、文档对象模型、浏览器对象模型。
Netscape最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。为了取得技术优势,Microsoft推出了JScript来迎战JavaScript的脚本语言。为了互用性,Ecma国际创建了ECMA-262标准(ECMAScript)。两者都属于ECMAScript的实现。尽管JavaScript作为给非程序人员的脚本语言,而不是作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。
发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。1997年,在Ecma的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。
1.JavaScript脚本语言的特点
(1)脚本语言
JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
(2)基于对象
JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
(3)简单
JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
(4)动态性
JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行点击或上下移动等操作,JavaScript都可直接对这些事件给出相应的响应。
(5)跨平台性
JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提是机器上的浏览器支持JavaScript脚本语言,JavaScript已被大多数的浏览器所支持。
不同于服务器端的脚本语言,如PHP与ASP,JavaScript主要作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。
随着服务器的逐步强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如Ajax)必须依赖JavaScript在客户端进行支持。随着引擎(如V8)和框架(如Node.js)的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。
2.JavaScript的主要功能
(1)动态的文件内容
JavaScript可以直接输出HTML标签,并使用程序变量更改输出内容,建立动态文件的内容或图片。
(2)更改HTML标签的样式和属性
对于HTML标签的属性和CSS样式,JavaScript可以获得属性和样式值,并动态地更改其内容。
(3)窗体验证和发送
JavaScript能够编写程序代码,在HTML窗体数据送到服务器前,验证用户输入的数据是否合理,建立客户端窗体字段的验证规则。
(4)处理网页或HTML标签的事件
JavaScript能够建立HTML网页或各标签的事件处理程序。例如,当HTML文件加载完成的,按下按钮字段或超链接等HTML标签的事件。
(5)Web应用程序
JavaScript为客户端的Script语言,在Client/Server应用程序中用来建立Client客户端的应用程序,搭配服务器ASP、ASP.NET或其他技术的应用程序建立完整的电子商务应用程序。