
1.1 JavaScript概述
随着Internet飞速发展,Internet网页制作已成为计算机培训的重要内容之一。在大型软件工程项目中,编写网页时往往结合使用JavaScript、HTML与Java Applet、ActiveX、Flash、Silverlight等插件技术。HTML语言是网页编辑的基础,通过它可以创建网页中的各种元素,例如文本、图像、列表、表格、交互界面等;JavaScript 是一种功能强大的语言,运用JavaScript可以控制HTML页面,对页面中某些事件做出响应,例如在用户单击按钮时展现按钮从按下到弹起的整个过程,在用户提交数据时进行有效性验证及数据查找等;插件则嵌套在HTML中,和HTML完美地结合在一起,使网页成为声音、图像和动画集成的Web页面。
1.1.1 JavaScript的特点
JavaScript 是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性的脚本语言。使用它的最初目的是与HTML(超文本标记语言)一起实现在Web页面中与Web客户的交互,从而可以开发Web客户端应用程序。它是通过嵌入到标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,具有以下几个基本特点:
1.JavaScript是一种脚本语言
JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其他脚本语言一样, JavaScript也是一种解释性语言,它提供了一个简易的开发过程。它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。
2.JavaScript是基于对象的语言
JavaScript 是一种基于对象的语言,同时也可以看做一种面向对象的语言。这意味着它能运用已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与属性。
3.JavaScript是事件驱动的语言
JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户行为的响应,是以事件驱动的方式进行的。所谓事件驱动,就是指在网页中执行了某种操作所产生的动作,比如按下鼠标、移动窗口、选择菜单等都可以视为事件(Event),当事件发生后,会引起相应的事件响应。
4.JavaScript是安全的语言
JavaScript 是一种安全的语言,它不允许访问本地的硬盘,并且不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止服务器被攻击。
5.JavaScript是与平台无关的语言
JavaScript只依赖于浏览器本身,与操作环境无关,只要能运行支持JavaScript的浏览器,就可正确执行,从而实现了“编写一次、到处运行”的梦想。实际上 JavaScript 最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,无须与Web服务器通信,通过自己的个人电脑即可完成工作。
1.1.2 JavaScript的局限性
JavaScript 为 Web 网页开发人员提供了极大的灵活性控制网页元素;另一方面, JavaScript 使得网页不再孤立,而可以与其他的Web 节点通信。但是JavaScript也具有如下的局限性。
1.浏览器方面的局限性
同一段 JavaScript 代码在不同类型,甚至不同版本的浏览器上的运行效果可能有所不同。目前主流的Web浏览器大致可以分为5大流派。
➢ Internet Explorer(简称IE):由于与Windows操作系统的天然集成,IE是目前占有率最高的Web浏览器。IE从IE 2.0版本开始支持JavaScript。以IE为内核诞生了许多“变种”:MyIE、Maxthon、GreenBrowser等。
➢ Mozilla:这里所指的 Mozilla 是一个开源项目的代号。Mozilla 与当年盛极一时的Netscape Navigator浏览器有着极深的渊源关系。在微软将其IE浏览器与Windows操作系统捆绑、免费向用户提供之前,Netscape Navigator是市场占有率最高的Web浏览器。在微软的重拳之下,1998年1月,Netscape 公司宣布 Netscape Navigator免费;同时,开发爱好者可以通过互联网免费下载Netscape Navigator的源代码,从此命名为 Mozilla 的项目开始运作。2002年6月,Mozilla 1.0发布,这是一个包含Web浏览器、网页编辑器、电子邮件客户端的套件,其中的独立浏览器部分先后被命令为Phoenix、Firebird和Firefox。如今的Firefox全球下载次数已经突破5亿,《PC World》、《Linux Journal Magazine》等权威技术刊物都对其给予高度评价。事实上,Firefox是对标准JavaScript提供最完备支持的Web浏览器。
➢ Opera:Opera浏览器起初是挪威Opera Software ASA公司制作的一款支持多页面标签式浏览的Web浏览器。Opera浏览器支持多种操作系统,如Windows、Linux、Mac、FreeBSD、Solaris、BeOS、OS/2、QNX等,此外,Opera还拥有手机版本。
➢ Safari:Safari是Apple公司为MacOS用户量身定做的Web浏览器,虽然近期也推出了Windows版本,但是其用户群体主要还是集中在Apple产品的拥护者之中。
➢ Chrome:Chrome是互联网新贵Google于2008年推出的浏览器。在浏览速度方面, Chrome与Firefox、Opera难分伯仲,垄断了前三甲的位置。Chrome内嵌离线浏览引擎Google Gears,并且对JavaScript标准提供完备的支持。率先推出的是Windows版本,MacOS和Linux版本也在计划之中。Chrome与诸如Google Map API、AdSense API等一系列API计划的推出,标志着Google不再满足于仅仅提供在线应用,而是开始着力打造属于自己的开发者社区。
对于 Web 前端开发人员而言,其最大痛苦便是让其脚本代码兼容如此众多的浏览器了。毋庸置疑,Firefox是最佳的JavaScript开发、调试平台,但是IE却是拥有最多用户、任何人都不能忽视的浏览器。IE对JavaScript的支持质量虽然逐版本提升,但是由于IE对JavaScript加入了许多“唯我独有”的特性,造成了在IE上调试通过的JavaScript脚本在其他浏览器上执行效果大打折扣甚至出错。在微软正式改善这一状况之前,开发人员还是经常要把代码兼容性放在首要位置。
2.操作系统方面的局限性
尽管JavaScript可以运行在任何支持JavaScript的浏览器上,但并不是JavaScript的所有部分在这些平台上都按相同的状况运行。例如:如果计划用 JavaScript 开发一个纸牌游戏,那么难免需要用到随机数据生成技术以实现洗牌和选牌,但是随机数方法只能在UNIX和Linux平台上运行。
3.安全性方面的局限性
大多数时候,JavaScript都是运行在浏览器中的,这就势必造成JavaScipt的运行权限不会超出浏览器所允许的范围:
➢ JavaScript不能修改和创建用户计算机上的文件。当然Cookie例外。
➢ JavaScript不能修改和创建Web服务器上的文件。这是容易理解的,因为JavaScript运行在浏览器端,而不是Web服务器上。
➢ JavaScript不能对计算机上任何软硬件资源造成实质性的损坏。JavaScript造成的最糟糕的事情也不过是让浏览器上出现难看的出错信息,或者用一段恶作剧式的代码关闭用户的浏览器或打开无限个浏览器窗口。
提示:上面提到“大多数时候,JavaScript 都是运行在浏览器中的”,言下之意是JavaScript有时运行在浏览器之外。的确如此吗?是的,在本书的第22章“Windows平台上的HTML组件与脚本宿主”中,读者将能看到如何利用JavaScript开发桌面应用程序。