作者:empty 页数:354 出版社:empty |
第一章1.1JavaScript概述
Netscape NavigatorJava Seri pt是Navigator 2.0中的关键组件之一, 它帮助Web开发人员在Internet上生成交互式应用程序。Navigator以插件、框架和Java为特征, Java是编译型的、面向对象的、复杂且不同于HTML的语言:Java Seri pt是解释型的、以对象为基础的、易于使用与学习且紧紧集成于HTML的语言。JavaScript将当前浏览器会话的属性提供给了编程者, 这些属性包括当前加载的HTML页面的元素, 如窗体、框架以及链接,虽然Nets capc Navigator是从基本的Web浏览器问世的, 但随着它的日益流行, 该软只要浏览一下Netscape Web站点就会看到, 当今的Navigator所能做的工作远远超过最为重要的是, Navigator 2.0提供了一些工具, Web页面开发者和编程者能够利用这本章将讨论Java Seri pt语言的主要特征和主要优缺点, 详细介绍在JavaScript中什么是对象以及如何使用对象, 还将全面介绍JavaScript中的内置对象。读者将会看到,JavaScript有许多优点。其中包括开发周期短, 与平台无关, 但它也存在一些缺点。件已具有更多的功能.与早期浏览器以及当今的基本Web应用程序不同的是, Navigator2.0给开发者提供了众多的工具, 从而超出了HTML的传统约束, 利用Navigator 2.0.开发者不再只是将文本、图画、声音以及图像做简单的组合,还可以对文档的布局、字体以及颜色做精确的控制:能够利用插件和Java扩充浏览器的功能; 能够通过使用Java Seri pt来生成交互式的应用程序。了早期的版本, 甚至使Web开发者无需进行专门的编程。采用软件公司提供的免费插件,Web开发者就可以在他们的文档中加入正宗的CorelDRAW图形和Microsoft Word文件、还可以观察VRML(虚拟现实建模语言) 世界, 以及用Adobe的与设备无关的Acrobat格式化的文档。些工具来改善他们的文档, 增加他们与Internet上提供的信息的动态交互。1.1.1从哪里得到Netscape Navigator2.0已于1996年初从产版软件过渡为实际发行的软件。为了学好本书中的内容,读者应复制一份Navigator 2.0, 以便上机试验本书中的各个例子。在大多数计算机平台上可得到Navigator 2.0, 其中包括Windows, MacOS的所有版本, 以及包含SunOS, Solaris以及Lin-ux的多种UNIX变种。目前, Netscape Navigator本身没有OS/2版本。目前, 只能在Netscape的Navigator 2.0Web浏览器中找到Java Seri pt功能。Navigator如果需要下载Navigator 2.0当前版本的拷贝, 可从位于http://home.netscape.com/
的Netscape主页面或从Netscape的众多ftp服务器或它们的许多镜像中得到:ftp://ftp.netscape.com/ftp://ftp2.netscape.com/ftp://ftp3.netscape.com/ftp://ftp4.netseape.com/ftp://ftp5.netscape.com/ftp://ftp5.netcape.com/ftp://ftp7.netscape.com/ftp://ftp.leo.chubu.ac.jp/pub/WWW/Netscape/(Japan)ftp://sunsite.ust.hk/pub/WWW/NetscapefHongKong)ftp://sunsite.huji.ac.il/Netscape/(lstaet)ftp://ftp.adelaide.edu.au/pub/WWW/Netscape/(Australia)-DATA PHILEiNetftp://sunsite.doc.ic.ac.uk/computing/information-systems/WWW/Netscape/(UnitedKingdom)ftp://ftp.informatik.rwth-aachen, de/pub/mitr or/ftp.netscape.com/(Germany)ftp:twuarchive.wustl.edu/packages/WWW/Netseape/(U.S.A.)ttp:/sunsile,une.edu/pub/packnges/infosysra/WWWilients/Nerscape(U.S.A.1.1.2框架框架是Navigator 2.0中最值得注意的HTML的扩充, 开发者可以利用框架将屏幕分成多个矩形部分.各个部分彼此独立, 且在每一框架内加载不同的URL。此外, 可以利用某一框架内的链接更新另一个框架.而且不会干扰其他框架。单以及给总能使用窗体的以窗体为基础的检索提供固定的、标签式的题头,为了更好地理解框架的概念, 可到下列站点地址去查看Ness cape对框架的介绍:目前, 人们利用框架给Web页面、给总是位于屏幕上但不需要重新加载与卸载的菜除了框架技术的明显的可视化要求以外.该HTML扩充还可以减小需从服务器请求或需传送到客户处的数据量, 对于急剧拥挤的WorldWide Web来说.这种减少可稍微提高Web浏览的效率, 并且会减轻过载的Web服务器上的一些负载。图1.1给出了一个如何利用框架来分割屏幕以及在若干个具有动态信息的框架邻近提供固定题头与永久性菜单的例子。从图1.2可以看到.通过选择菜单项能够更新屏幕左下角部分的信息,但不会影响窗口中的其余部分。
数据与文档的能力, Netscape把通过插件显示的对象称为Live Objects(活对象) 。到此为止, Corel, Paper Software以及Adobe等销售商已开发出了具有自己格式的插由于可用插件的数量不断改变, Netscape在下面站点中提供了最新的可用插件清单:http://home.nescape.com/comprod/products/navigator/vesin_2.0/plugins/ndex.html1.1.4Java及JavaScript的作用利用Java与JavaScript, Web开发人员具有在单独的框架中加载多个文档以及观察目前常见的一些有效的Java App et(小应用程序) 如下所示。·滚动文本Applet:Java正被用来给Web页面加人选择框。·动态数据输入:动态股票报价机就是这方面的例子之一.例如由Sun Microsystems·搜索引擎:可以利用Java Applet建立数据库查询, 然后将该查询传送到远程数据·给Web浏览器加人协议:就像在Internet上开发协议一样.Java所提供的潜在可·新的文件格式:Java允许Web浏览器通过下载显示所需要的文件的Applet来显相比之下, JavaScript用来生成对用户以及环境事件起作用的脚本, 同时将来会成为·Web开发人员在他们的文档中试验不同的背景颜色与文本颜色的交互式颜色采·计算器:用于Web的实例, 包括单位转换计算器和贷款利率计算器,·以当前环境以及用户以前的漫游为基础的动态输出。·窗体校验:JavaScript能够保证所输入的窗体数据在传送到服务器以前是正确的,·建立URL:根据用户在窗体中的选择, 用JavaScript建立定制URL,Java与Java Seri pt之间存在着差别, 虽然它们是相关的, Java Seri pt借用了Java的大件(图1.3给出了其中一种公司的格式) , 其中许多插件能够扩充来支持Java Seri pt, 使得Java Seri pt程序能直接与插件交互.并在Netscape Navigator的新版本中进一步提高Java-Script的性能,新文件格式的能力, 还能够进一步提高Web页面的性能,术语自从Sun Microsystems在1995年将Java引入Web界以来, 术语Applet已被广泛地使用。Applet是一些包括于Web页面且根据需要下载以由客户浏览器执行的小应用程序。虽然从技术上看该术语仅表示Java程序的类型, 但随着JavaScript的应用, 该术语也可用来描述用JavaScript开发的集成脚本的类型。公司的Jim Graham开发的金融有价证券演示, 如图1.4所示。库中。能性之一是能根据需要用Java扩充Web浏览器的功能。示新的文件格式。Java的广泛流行意味着其应用范围在未来将会增大, 但目前Java主要用于对Web页面做装饰性的改进,使Java Applet更平滑地挂到Web页面上的粘结剂。下面是一些应用实例。集器.而不是在数据提交后由服务器来校验窗体的内容。图1.5说明了窗体的校验。·利用Java Seri pt能够为客户端处理替换许多CGI脚本, 从面缓解繁忙的Web服务器的带宽需求,且减小了服务器负载。多数语法, 但它们在本质上是不同的, 而且服务于不同的目的, 可以说Java与JavaScript是互为补充的,而不是相互竞争的。
Java——综合、完整的面向对象的编程语言Java不仅仅是开发以Web为基础的应用程序的语言, 它也可以与市场上已趋成熟、一般目的的程序设计语言(如C, C++, Pascal以及FORTRAN) 相竞争。与以前的语言不同的是, Java的平台是独立的, 既可以用于应用程序的开发, 又可以为Web页面开发内置的applet, 或小应用程序。像c++和Smal alk一样, Java是面向对象的, 它继承了C++的语法与风格1.编译型语言Java与大多数编程语言不同, 它并不按传统的方式编译.Java编译器并不将源代码编译成本地机器代码, 它会把源代码转变成Java字节代码(称为结构中性字节代码) , 这种代码与运行的平台无关。然后该代码在与设备相关的运行解释器中运行。这样,开发人员仅需要开发并维护一套源代码,并将该代码编译一次,编译后的代码就可以通过任何机器的运行解释器来运行,2.完全可扩展性真正的面向对象语言的基本特征是可延伸。也就是说,编程人员能够创建自己的类(即对象成组和数据结构)来扩充作为编程语言部分的基本类。术语在面向对象的编程中使用的术语类(Class) , 表示一套共享共同特性的相关的对象。类以及创建新类的能力使面向对象的编程成为一种强大且灵活的编程模型,Java没有超出这种规则, Java编程者可以按照常规给一组基本工具或类创建它们自己的扩展,3.陡峭的学习曲线面向对象的编程语言具有陡销的学习曲线, 特别是对于非编程员来说更为如此, Java也存在着这种难度。由于WorldWide Web的高度开放与大众化, 对于Java和Java Applet来说, 安全问题为防止这种问题, Sun从Java开发的最初阶段开始, 就采取了严格的安全措施, 这些1.2.2 JavaScript——简单、以对象为基础的脚本编写语言JavaScript不仅保留了Java的基本语法和结构, 它也借用了Java的大部分流程结构,Java Seri pt与Java不同, 它是解释型语言, 在Java中, 源代码在运行以前编译, 而在解解释型语言具有若干优点, 同时也具有若干缺点, 像JavaScript这样的解释型语言一解释型语言的缺点是,对于某些解释型语言,当程序运行时要对命令进行解释,这会当脚本下载时, JavaScript脚本被编译成字节代码(与Java相似) 并执行, 对于大多数与Java不同, Java Ser pt不是完全可扩展的。利用Java Sip t模型足以建立客户端应由于Java Seri pt是一种以对象为基础的脚本编写语言, 本书将重点介绍JavaScript中初级编程人员的一般感受是, 学习Java是一件令人生畏的任务, 持别是想到Internet上有效的联机文档的复杂性时更为如此4.使客户/服务器交互作用随Java配套的一组基本类非常适用于客户/服务器交互作用, Java已具有与URL工作以及同HTTP服务器交谈的能力。Java对Applet的支持增加了在客户Web浏览器中与用户事件交互作用的能力。此外, 来自于Sun Mier o systems的演示浏览器HotJava, 演示了如何利用Java使浏览器动态地学习处理新协议。注意当Java仍处于初级开发阶段时, Sun开发了HotJava来演示Java在WorldWide Web中对分布式应用程序的潜能, 以及演示浏览器如何动态地学习处理新协议与文件类型。对于Solaris和32位的Windows(WindowsNT与Windows 95) , 可从位于http://www.javasoft.com/的主页面得到HotJava。5.开发独立的应用程序与AppletJava能够开发在WorldWide Web上传送以及在客户Web浏览器中执行的applet, 同时, Java也可以开发完整的、与平台无关的、使用Java运行解释器的GUI应用程序,6.提供高度的安全性就成为主要的问题。从未知的远程机器中给自己的计算机系统下载应用程序代码并执行它, 毕竟具有潜在的危险, 这些Applet可能包含病毒, 而且很可能就是试图销毁数据并使计算机不能运行的应用程序。措施包括字节代码的校验(保证它们没有违反访问约束等)以及可配置的网络安全性。这种安全性范围包括从不允许网络访问, 到限制一个Applet只访问初始生成代码的主机, 直到完全自由地访问网络为止。7.与HTML的区别虽然applet是WordWide Web的特征之一, 且作为内联Applet包括在HTML文件中,但它们与HTML以及HTML文件是有区别、相分离的。新的HTML标志符强迫Web浏览器产生与服务器的一个新连接, 并告诉浏览器在Web页面的什么地方显示Applet的输出, 但除此之外, Applet与HTML是有区别、相分离的。Java Seri pt比Java简单、容易使用, 它比Java拥有更容易的学习曲线, 它具有强大的工具, 用户只需稍做努力, 就可以给Web页面加入交互作用性。1.起源于JavaJava Seri pt的出现在很大的程度上归功于Java, 虽然两者的功能范围以及编程风格大不相同, 但JavaScript的语法和基本结构与Java是相似的, Java Seri pt最初是作为Netscape本身的脚本编写语言以Live Seri pt为名出现的。但在1995年末, Sun认可了该语言, 且该语言更名为JavaScript,并采用了某些相同的安全措施, 如防止Applet写到本地磁盘上。2.解释型语言释型语言中, Java Seri pt中源代码文件则直接在运行时执行.般要比编译型语言简单,且易于掌握.由于解释型语言的程序每做一次修改后都需要重新编译,因此解释型语言的程序更易于开发、修改、排除故障,降低程序的性能, 但对于JavaScript来说, 似乎不存在这样的问题,脚本来说,我们会感到它的性能是非常优秀的。3.不是完全可扩展的用程序的有限的一组基本对象、特性、方法以及数据类型。虽然用户利用Java Ser pt可以建立他们自己的对象并编写函数, 但这与Java以及其他面向对象的编程语言中的类及继承机制是不一样的。
4.有限的客户/服务器交互作用(1) JavaScript是脚本编写语言当前形式的JavaScript并不具有完整的客户/服务器交互作用, JavaScript除了分析、建立以及调用URL外, 它并不能直接与服务器或与不同的协议交谈。从本质上讲,JavaScript非常适合于处理客户端活动。这些特征以前, 需由Netscape通过JavaScript解决有关客户/服务器交互作用的若干安全问题。1995年11月末, Netscape和Sun联合宣布Live Seri pt更名为JavaScript, Sun将支持在这种支持下, 毫无疑问JavaScript将继续与Java相类似, 而且它会成为将Java Ap-从本质上讲, Sun对Java Seri pt的认可给很少有人注意的脚本编写语言注入了活力,Netscape除了在它的Navigator Web浏览器中包括进Java Seri pt以外, Netscape正在它一旦完成上述工作, Shell完全有可能选择JavaScript语言来对CGI进行编程, 从而在本书重点介绍在Navigator Web浏览器中使用的JavaScript, 这是因为JavaScript的大特征。重复性的系统管理任务,且为计算机水平差的用户自动完成许多任务。此外,脚本编写语(2)适用于简单、小型的程序由于Java Seri pt集成于浏览器之中, 而且能直接与HTML页面交互, 因此JavaScript例如, 利用Java Seri pt脚本可实现简单的帮助系统, 一旦用户指点页面上的按钮或链另外, 有迹象表明, JavaScript的未来版本会支持像HTTP, ftp这样的协议, 但在实现此外, Java Seri pt将成为正由Netscape开发的LiveWire Web服务器的一部分, LiveWire面向以开发交互式Web应用程序的开发团体与公司为目的, 按照这一原则, JavaScript将为服务器终端编程提供替代目前的CGI脚本编写的方法,5.集成于HTMLJava只是松散地依赖于HTML, 而JavaScript则紧紧地集成于HTML文件, 它整个脚本与定义页面的HTML处于同一个文件中, 而且在下载HTML文件的同时也下载了这些脚本,学习Java Seri pt时, 了解该语言目前的状态及其发展方向是至关重要的。Navigate r 2.0和Java Seri pt都处在快速发展且不断改进的阶段, 从定义上看,JavaScript是处于发展中的语言(与大多数编程语言一样) 。在实际中, 这意味着还没有形成完善的语言规范。JavaScript正以非常现实的方式向目标迈进。当前拥有的一些方法和特性也许会在下一个或最终的版本中去掉,实际完成的语言规范也许会做修改,而且随着语言的发展,一些工作方式也可能进行更改,JavaScript, 使它成为Internet上的以Java为基础的开放型脚本编写标准。p lets粘贴到Web页面的选择工具。至少在Netscape环境中如此。现在, 该语言已成为WorldWide Web上的热点。Sun Microsystems并不是支持JavaScript的唯一公司, 在Net sea pe与Sun发出联合声明的同时, 包括America Online, Apple Computers, Oracle, Sl icon Graphics, Archie xt以及SCO这样的公司也宣布它们将承认JavaScript为Internet的开放型脚本编写标准, 而且许多公司表示它们正在考虑认证该项技术,以便将其包括进自己的产品中,的服务器终端产品中包括进JavaScript, 这些产品包括LiveWire, Netscape Commerce Server以及Netscape Communications Server。客户以及服务器终端形成一致的开发环境。此外, 由于得到众多公司的认可, JavaScript将开始出现在Netscape以外的公司的产品中, 以及Web浏览器和服务器以外的产品中,多数开发是在浏览器中进行的, 而且浏览器也是学习与练习JavaScript的最方便的环境。到目前为止, 读者对什么是JavaScript有了一些了解。下面更详细地介绍JavaScript的N1.3 JavaScript的现状1.4JavaScript的特征9在Web问世以前, 人们就长时间使用脚本编写语言。在UNIX环境中, 脚本用来完成言是目前用于给Web页面加入有限的交互性的大多数CGI-BIN编程的基础。脚本编写语言的例子包括Perl(在CGI编程中著称) 、Awk以及SED(用于大量的文本处理) , 甚至包括Hyper Talk, 后者像JavaScript一样, 是面向对象的脚本编写语言。当然,这仍不能说明脚本编写语言的主要优点是什么。像所有的脚本编写语言一样,JavaScript是解释型语言, 它提供了一个易于开发的过程, JavaScript包含有限且容易学习的命令集与语法,它能够完成各种定义好了的任务。非常适用于开发英里与公里或磅与公斤之间的单位转换计算器,这些任务编写容易,可按JavaScript所能接受的速度完成, 而且易于集成到Web页面, 像Java这样的语言则不适用于这种类型的开发迅速且易于维护的应用程序。Java Seri pt最终会成为将这种类型的Java Applet或插件集成到Web页面的工具, 但试图在JavaScript中开发实际的Applet是最困难的、低效的, 甚至是不可能的,言一般用于较小的任务,而不是用于复杂的、编译型程序。由于Java Seri pt是脚本编写语言, 因此非常适用于简单、小型的程序。例如, JavaScript相比而言, JavaScript非常不适于实现分布式CAD文档的显示以及操作环境。虽然当然, 这并不意味着用JavaScript不能开发复杂的应用程序, 而是意味着脚本编写语(3)完成重复性的任务JavaScript适用于生成小的程序, 该语言也特别适用于重复性、事件调用的任务。例如, Java Seri pt非常适用于根据另一字段中的数据的变化来计算窗体中某一字段的内容。每当数据改变时, 调用处理事件的JavaScript程序, 则其他字段的新数据被计算并显示。(4)使程序响应用户文件能使程序响应诸如鼠标单击、在窗体中输入数据这样的用户事件,接,在浏览器窗口底部的状态条上就会显示出帮助或提示信息。这样就给Web页面增加了交互性, 使窗体成为动态的, 而且能减小由于使用窗体以及CGI编程所引起的带宽需求与服务器负载。
(5)易于调试和测试
与其他脚本编写语言一样, JavaScript易于开发、易于排除故障, 这是因为它没有经过提到JavaScript时, 流行的用语是“将Java Applet粘贴到Web页面”。在JavaScript的Java Seri pt是以对象为基础的。下面先介绍对象以及对象如何工作。从根本上讲, 对象(Object) 是组织信息以及操纵和使用这些信息的方法的一种方式。上面定义对象的方式与在像FORTRAN, C这样的传统过程编程语言中处理信息的方1.Navigator Object HierarchyJava Seri pt中的大多数内置对象属于Navigator Object Hierarchy(Navigator对象层次)Window表1.1说明了这些对象的主要特征,对描述locationhistory2.其他内置对象除了Navigator Object Hierarchy内的对象外, JavaScript提供若干与当前窗口或加载的M ringJava Seri pt除具有众多的内置对象外, 作为JavaScript的编程者, 还可以建立在自己的例如, 如果需要在JavaScript中建立一个对象, 表示由飞机制造厂销售出的飞机的不在像C和Pascal这样的传统语言中, 属性可能会是变量, 在JavaScript中, 变量被命名因此, 在JavaScript中, 如果把自己的对象称为airplane, 那么上述属性可表示为:编译。Java Seri pt易于测试程序代码、观察结果、进行修改, 而且不需要编译时的系统开销和延时就可以再次测试。(6) Java粘贴剂新版本中, 这种粘贴是通过捕捉用户事件, 并将由这些事件触发的有关信息传送到JavaApplet来实现的。Java Applet在与用户以及浏览器环境交互作用的能力上有更多的局限性,对象提供了一种定义与当前项有关的专门数据片的方法, 这些片称为属性(Properties) , 此外,任务又补充了属性,它可以在这些信息上或使用这些信息进行操作,这又称为方法(Method) 。属性与方法一起构成对象。由于对象的共性,可以在每一需要的场合建立专门的实例,例如,汽车对象可以有Toyotas, Fords, Volkswagens这些实例。式完全不同。在这些语言中,信息和过程(类似于方法)各自独立且互不相同,而且两者也没有像在对象中一样链接起来。另外,在过程语言中,建立实例的概念也没有很好的开发。JavaScript既包括与当前加载的HTML文档的元素一起工作的内置对象, 同时也完成像算术计算这样的其他有用的任务,它也允许编程者建立自己的对象。1.5.1内置对象的使用JavaScript提供一套内置对象, 它们提供了反映当前加载的Web页面及其内容以及Navigator的当前会话的信息。另外, 这些对象提供了与它们的属性一起工作的方法,部分, Navigator Object Hierarchy是由称为window对象的单个基本对象建立的, 如下面所述:windowdocume nd文档没有关联的对象。表1.2说明了这些对象的主要特征。同类型,用户具有与飞机有关的若干信息片,且想把这些信息包括在对象中,其中包括型号、价格、正常载客量、正常载货量、最大速度、载油量,为用来保存数据片(如数量或文本)的容器.1.5JavaScript中对象的使用表1.1 Navigator对象层次概述表1.2其他内置对象LocationHistoryDocumentForms象对MathDate1.5.2自定义对象的使用脚本中使用的自己的对象。1.属性Anchorsl1window对象提供处理实际的Navigator窗口的方法与属性, 包括每一个框架的对象loca in对象提供与当前打开的URL一起工作的属性和方法h stary对象提供有美历史单方面的信息, 并可与该清单进行有限制的交互document对象是层次中最常用的对象之一, 它包含与文档元素一起工作的对象、属性与方法, 这些文档元素包括窗体、链接、错, 以及最终与Applet一起工作xt ring对象使程序能与文本串一起工作, 并使程序能够处理文本串, 其中包括摄子字符串,以及将文本转变成大写或小写的字符Math对象提供运算三角函数(如正弦、正切) 以及一般数学函数(如平方根) 的方法利用Du te对象, 程序能够与当前的日期一起工作或给指定的日期建立实例, 诚对象包括计算两个日期之间的差值以及与时间一起工作的方法推述airplane.modelairplane.priceairplane.seatingairplane.cargoairplane.max spendairplane.fuel
12注意在JavaScript中, 对象的属性是用“对象名·属性名”的结构表示的。2.方法a it plane.dese ripton()air pian e.distance()airplane.record.number_in_usenir plane.Te cord.crashes(2)易于学习·框架:把一个窗口分成多个相互独立部分的能力。当然,如果拥有这些信息但没有使用这些信息的方法,信息则没有多大价值,例如,在上面的例子中,读者可能想以漂亮的格式打印出对飞机的描述,或能够根据载油量计算出飞机可飞行的最大距离。在面向对象的术语中,这些任务称为方法。像属性一样,本例中的方法可以表示成如下形式:3.对象内的对象对象也可以包括其他对象,方式与属性和方法非常相似,例如,飞机制造厂想在它的对象定义内部再包括一个对象,以处理有关全世界所使用的飞机数量、谁在使用它们以及它们的安全记录这样的信息,那么可以将这些信息以及处理这些信息的方法组合成一个名为airplane.record的对象, 该对象可以包括属性和方法, 例如:4.实例以上所建立的是对象的一般描述,该对象定义了用户想要处理的信息,以及处理这些信息的方式.对象的这些一般描述称为类,在面向对象的编程中,可以根据需要建立类的特定的实例。注意在面向对象的编程中, 建立类的特殊的副本称为建立实例, JavaScript本身是类,但它提供了建立对象实例的机制(因此也提供了一些基本方法)。本书后面将详细介绍如何建立对象以及实例。例如在本例中, 飞机制造厂也许想要给它的最新型的飞机建立airplane对象的一个实例Super Plane, 如果建立了该实例, 程序则可以引用super plane.price, super plane.model等给新实例的属性赋子特殊的值。同理, 可以用super plane.description() 打印出对新飞机的描述,因为JavaScript不需要耗时的编译过程, 因此脚本的开发周期相对较短, JavaScript的1.6JavaScript的优缺点1.7小结JavaScript为编程者提供了便利, 其中包括开发周期短, 容易学习, 与平台无关, 脚本篇幅小等。这些优点意味着可以方便迅速地用JavaScript来扩充Web上已有的HTML页面.(1)开发快大多数界面特征, 如对话框、窗体以及其他GUI元素均由浏览器和HTML代码处理, 因此更加提高了开发速度。Java Seri pt编程者不需要担心建立或处理它们的应用程序的这些元素,户只需学习Java Seri pt的一些命令、简单的语法规则以及了解JavaScript中使用对象的方式,就可以建立相当复杂的程序了。JavaScript程序不受任何特殊硬件平台或操作系统的影响, 同一程序代码可应用于具有Navigator 2.0的任何平台。13虽然Java Ser ip:在许多方面与Java类似, 但它没有Java的那些复杂的语法和规则。用(3)与平台无关由于WorldWide Web本身是与平台无关的, 因此, 由Netscape Navigator建立的(4)开销小与由Java生成的二进制Applet相比, JavaScript程序相当紧凑, 这就最小化了它在服务器上的存储空间以及用户的下载时间, 此外, 由于JavaScript程序通常与一页的HTML代码包括在同一个文件中,因此这些程序几乎不需要单独的网络访问,JavaScript还没有成熟的开发与调试环境。Java Seri pt也有其特有的缺点, 其中包括内置方法集有限, 不能防止源代码被窃, 以及(1)内置方法有限早期的Navigator 2.0beta版包括一个内置方法, 是相当有限的版本。在Navigator 2.0的最新版中,内置方法的数量已大大增加,但仍没有一套与文档窗口以及客户窗口一起工作的完善的方法集。(2)代码没有隐藏由于JavaScript脚本的源代码目前必须成为文档的HTML源代码的一部分, 因此没有方法保护这些代码免遭观看Web页面的人们拷贝或再使用。目前, JavaScript脚本基本上是免费软件.(3)缺乏调试与开发工具大多数开发完善的编程环境要包括一套工具,这些工具可使开发更容易、更简单,而且能加快调试的过程。在写本书时, JavaScript还没有适用于这一目的的专门工具, 但人们已经开始开发以Web为基础的应用程序(利用Java Seri pt) 来达到这些目的,本章介绍了对象以及对象如何工作, 探讨了Java Seri pt的内置对象。通过学习本章, 读者应当对Navigator 2.0有了全面的了解, 并认识到Java Seri pt是如何解决各种疑难问题的。具体来说,本章探讨了如下主题:力。点),·插件:给Navigator 2.0加人第三方附件, 以扩充浏览器处理新型数据和信息的能·Java:用于分布式应用程序的面向对象的编程语言.·Java Seri pt:嵌入到Navigator 2.0内的一种简单的、基于对象的编程语言(本书的重·Java与JavaScript之间的相同之处与不同之处。
Evaluation Warning:The document was created with Spire.PDF for.NET14·作为脚本编写语言的JavaScript。·对象、特性和方法。·Navigator Object Hierarchy和其他内置对象。·JavaScript的优缺点,第二章2.1编写一个简单的脚本将JavaScript组合到HTML表2.1 SCRIPT标识符的属性本章将介绍如何用SCRIPT标识符将Java Seri pt脚本组合到HTML文件中。也可以用本章还将介绍如何使用作为document对象的成员的write() 以及writeln() 方法, 同在本章中, 我们将突破静态输出到当前客户窗口的限制, 利用alert() 方法, 可以直接(SCRIPT)Java Seri pt程序(/SCRIPT》SCRIPT标识符包括存放于单独的外部文件中的JavaScript代码。在一个HTML文件中可以使用多个SCRIPT容器, 本章还将介绍JavaScript命令的基本结构以及如何用大括号来建立包含多个命令的块。时介绍输出文本时能够使用的特殊字符, 此外, 还将介绍JavaScript的注释语法。从JavaScript脚本输出到对话框, 利用prompt() 方法可以更加迈进一步。prompt() 方法能够要求用户在对话框的人口字段输入一个数据项。用户输入的数据由pr mpt() 方法返回, 且能够用doe ument.wie() 或document.wrn() 输出, 这是能在Web页面上生成动态的、定制的输出的方法之一。目前所有的JavaScript脚本都需要包括到HTML中, 使它成为HTML文档的集成部分。为此, Netscape已实现了对标准HTML的扩充即SCRIPT标识符.2.1.1 SCRIPT标识符在HTML中包括脚本很方便。每个脚本必须包含在SCRIPT容器标识符内, 换言之,要用打开标识符(SCRIPT>开始脚本, 用关闭标识符(/SCRIPT来结束脚本, 例如:该SCRIPT标识符有2个可选属性, 这2个属性决定着正在使用的JavaScript如何并入HTML文件。表2.1给出了这2个属性。
第一章
JavaScript概述……
4.1.1函数的定义...
4.1.4文件头部的函数…
4.2.2作为对象属性的对象..
4.2.3对象的方法.....
5.1.1 this关键字…
1.1 Netscape Navigator
1.1.1从哪里得到Netscape
1.1.2框架…
1.1.3插件…….
1.1.4Java及Java Seri pt的作用…
1.2Java与JavaScript的比较…
3.3.1变量的声明…...
3.3.2变量在脚本中的使用…
3.4表达式…….
3.4.1赋值表达式…..
3.4.2运算符…
3.4.3运算符的优先级…
3.5表达式与运算符范例……
3.6if-else结构...
3.7小结…....
4.1函数及其使用…
4.1.2参数传递…..
4.1.3函数的返同结果..
4.1.5函数应用范例…
4.1.6递归函数…
4.2对象....
4.2.1对象的属性…
4.2.4如何定义自己的对象…
4.3关联数组……..
4.4综合范例….
4.5
小结…
5.1事件及其处理程序..
5.1.2事件处理程序….
5.1.3模拟事件…
1.2.1Java综合、完整的面向对象的编程语言.....
1.2.2JavaSeript-简单、以对象为基础的脚本编写语言.
1.3 JavaScript的现状..
1.4JavaSeript的特征…….
1.5JavaSeript中对象的使用…
1.5.1内置对象的使用.…..
1.5.2自定文对象的使用.
1.6 JavaScript的优缺点…
1.7小结.........
第二章编写一个简单的脚本.....
2.1将JavaScript组合到HTML.....
2.1.1 SCRIPT标识符…
2.1.2将Java Seri pr包括到HTML文件中的方法...
2.1.3将脚本隐藏于其他浏器的方法...
2.1.4 SCRIPT标识符存在的问题……
2.1.5JavaSeripr代码放人位置….
2.1.6为JavaScript程序使用外部文件……
2.2 JavaScript的基本命令语法...
2.3 JavaScript的命令块.....
2.4输出文本......
2.5超出文档窗口的限制…
2.6对话框的使用…
2.7与用户交互.
2.8小结.........
第三章数据类型、变量、表达式与if结构...
3.1数据类型.....
3.2类型转换….
3.3变量.….
第四章函数与对象…
第五章事件……
5.1.4事件处理程序onLoad与on Un lead…
5.1.5 window.open() 的使用.....
5.2事件与窗体…..
5.3事件程序范例……
5.4小结.........
第六章交互式窗体…
6.1 form对象…...
6.1.1 form对象的属性…
6.1.2 form对象的方法……
6.1.3 form对象的事件处理程序
6.1.4窗体元素的使用.......
6.2利用表格建立计算器…
6.3 elements[] 数组…
6.4建立乘法表范例…
6.5 forms们] 数组…….
6.6带文本字段的提示……
6.7交互式窗体范例…
6.8
小结…
第七章循环…
7.1 for循环…
7.1.1 for…in循环
7.1.2 for循环范例…
7.2 while循环.
7.3 break和continue语句.…
7.4循环范例..
7.5数组……
7.6小结……
第八章框架、文档和窗口…
8.1框架…
8.1.1 FRAMESET标识符…
8.1.2 FRAME标识符…
8.1.3嵌套框架…....
8.1.4NO FRAMES标识符……....
8.1.5命名框架……
8.1.6在Java Seri pt中框架的使用…
8.2嵌套框架集应用范例…
8.3 document对象..
8.3.1 BODY标识符…
8.3.2 document对象的属性…
8.3.3 document对象的方法…
8.3.4在颜色测试器中document对象的使用…
8.4 window对象…
8.4.1状态条的使用…
8.4.2窗口的打开和关闭…
8.4.3用Timeouts哲停……
8.5状态条消息处理程序的建立…….
8.6 Navigator 2.0的颜色处理.....
8.7
应用程序范例.
8.8小结…
第九章Cookies的使用…
9.1何谓Cookies...
9.1.1超文本传送协议HTTP…
9.1.2 Cookies与HTTP头部…
9.1.3 Cookie与j Set-Cook ic...
9.1.4有关Cookie的例子…
9.1.5 Cookie与CG 1脚本…
9.2
在JavaScript中Cookie的使用....
9.2.1在Cookie中存储用户的选择…..
9.2.2对Cookie进行编码……
9.3建立新的搜索页面….
9.4 navigator对象......
9.5记事日历程序…
9.6小结…
第十章string、Math和history对象
10.1 string对象...
10.1.1 length属性……
10.1.2 string对象的方法…
10.1.3建立搜索与替换工具…
10.2Math对象……
10.2.1三角方法……
10.2.2log() 与exp() 方法…
10.2.3abs() 方法……
10.2.4计算儿何测量…
10.3 history对象…
10.4
小结
第十一章游戏程序的设计…
11.1卡通游戏的设计....
11.2火柴游戏的设计.....
11.3小结…….
第十二章电子表格程序设计….
12.1通用电子表格程序…
12.1.1通用电子表格脚本........
12.1.2基本脚本功能的扩充….
12.2成本核算工作表程序…
12.3小结.…
第十三章关于Navigator Gold 2.0..
13.1简介….
13.2 Navigator Gold 2.0的浏览器窗口与编辑器窗口..
13.3用Navigator Gold 2.0建立HTML文档.......
13.4用Navigator Gold 2.0开发JavaScript应用程序..
13.5小结……
第十四章从Java Seri pt到Java....
14.1Java的基本概念.......
14.2用APPLET标识符在HTML中组合Java Applet..
14.3Java的使用…….
14.4从JavaScript到Java...
附录A词汇表......
附录B Internet网上的JavaScript资源….
附录C JavaScript语言参考….
C.1对象…...
C.2函数、运算符与保留字……
C-2.1数….
C.2.2运算符…...
C.2.3保留字…
参考文献…