《Javascript教案.docx》由会员分享,可在线阅读,更多相关《Javascript教案.docx(55页珍藏版)》请在第一文库网上搜索。
1、http:WWWJavascript部分共10天40学时2周第一天JaVaSCriPt简介第一节简介1.1 Javascript简介:Javascript的历史1992年,一家名为Nombas的公司开发一种叫C减减(C-minus-minus,简称Cmm,有点与C+对应的意味)的嵌入式脚本语言。Cmm背后的理念很简单:一个足够强大可以替代宏操作(macro)的脚本语言,同时保持C/C+足够的相似性(C语言太经典了,特别是其语法有着简洁美),以便开发人员能很快学会。这个脚本语言被捆绑在一个叫做CEnVi的共享软件产品中,它首次向开发人员展示了这种语言的威力。Nombas最终把ICmm的名字改成了
2、ScriptEase,原因是后面的部分(mm)听起来过于“消极”,同时字母令人害怕。现在ScriptEase已经成为了Nombas产品背后主要驱动力(怎么我觉得这家公司已经不存在了呢?)o当NetscapeNavigator(盛极一时的网景的浏览器,结果被微软IE的免费策略搅黄了局)暂露头角时,Nombas开发了一个可以嵌入网页中的CEnvi的版本。这些早期的实验称为EspressoPage,它们代表了第一个在万维网上使用的客户端脚本语言。而Nombas丝毫没有料到它的理念将会成为internet的一块重要基石。当internet普及越来越广时,对于开发客户端脚本的需求也逐渐增大。此时,大部分
3、internet用户仅仅通过28.8kbits的Modem来连接到网络,即使这时网页已经不断地变得更大和更复杂。加剧用户痛苦的是,仅仅为了简单的表单有效性验证,就要与服务器进行多次的往返交互。设想一下,用户填写完一个表单,点击提交按钮,等待30秒后,看到的却是一条告诉你忘记填写一个必要的字段的信息。那时正处于技术革新最前沿的Netscape,开始认真考虑一种开发客户端语言来处理简单的问题。当时为Netscape工作的BrendanErich,开始着手为即将在1995年发行的NetscapeNavigator2.0开发一个称之为1iveScript的脚本语言,当时的目的是同时在浏览器和服务器使用
4、它。Netscape与Sun公司联手及时完成了1iveScript的实现。就在NetscapeNavigator2.0即将正式发布前,Netscape将其更名为JaVaSCriPt(想当年,也就是95年,正式JaVa普遍开始流行的一年,JaVa开始火起来,似乎打上一个JaVa的标签,也会火起来一样),目的是为了利用Java这个internet时髦词汇。Netscape的这一决定也实现了当初的意图,Javascript从此变成了因特网的必备组件。因为Javascript1.0如此成功,Netscape在Navigator3.0中发布了JaVaSCriPt11版本。恰巧那个时候,微软决定进军浏览器
5、市场,发布了IE3.0b并搭载了一个Javascript的克隆版,叫做Jscript(微软一直是一名成功的模仿者,这样命名是为了避免与Netscape潜在的许可纠纷)。微软步入浏览器领域的这重要一步当然推动了javascript的进行一步发展。在微软进入后,有3种不同的Javascript版本同时存在:NetsacpeNavigator3.0中的Javascrip11E中的JScript以及CEnvi中的ScriptEaseo与其他编程语言不同的是,Javascript并没有一个标准来统一其语法或特性,而这3种不同的版本恰恰突出了这个问题,随着用户担心的增加,这个语言标准化显然已经势在必行。1
6、997年,JaVaSCriPt11作为一个草案提交给ECMA(欧洲计算机制造商协会)。第39技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义二由来自NetscapeSun微软、Bor1and和其他一些对脚本编程感兴趣的公司的程序员组成的TC39锤炼出了ECMA-262,该标准定义了叫做ECMAScript的全新脚本语言。在接下来的几年里,ISOIEC(国际化标准组织及国际电工委员会)也采纳ECMASCriPt作为标准(ISO/IEC16262)。从此,Web浏览器就开始努力(虽然有着不同成都的成功和失败)将ECMAScript作为JaVaSCriPt实现
7、的基础。Javascript的优点1简单性Javascript是一种脚本编写语言,她采用小程序段的方式实现编程,像其他脚本语言一样,Javascript同样也是一种解释性语言,他提供了一个简易的开发过程,他的基本结构形式与C、C+十分类似,但他不像这些语言一样,需要先编译,而是在程序运行过程中被逐行的解释,他与HTM1标记结合在一起,从而方便用户的使用操作。2 .动态性Javascript是动态的,他可以直接对用户或客户输入作出响应,无须经过web服务程序,他对用户的反映响应,是采用以事件驱动的方式进行的,所谓事件驱动,就是指在页面中执行了某种操作所产生的动作,称为“事件”。比如按下鼠标、移动
8、窗口、选择菜单等都可以视为事件,当事件发生后,可能会引起相应的事件响应。3 .跨平台性JaVaSCriPt是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持javascript的浏览器就可以正确执行。4 .节省CGI的交互时间假如提交一个简单的表单,就需要与服务器进行多次的交互,点击提交,等待30秒后被告之没有填写住址等等类似的事情发生让人感觉非常不舒服,客户端脚本就显得越来越重要,Javascript可以在数据被提交给服务器之前,预处理客户端的数据。Javascript的局限性浏览器有很多种,每种对javascript的支持程度是不一样的,效果会有一定的差距。1.2主要应用
9、 控制文档的内容和表现document.write(he11o,web); 控制浏览器的行为window.status=欢迎访问javascript”; 和文档的内容相互作用和用户交互VtitIe猜数字游戏vtit1eVSCriPt1angUage=JavaScript”varsum=0;num=Math.f1oor()第二节简介2.1 javascript不能做的(限制多,安全性高)设置或检索浏览器参数设置、主窗口外观特性、动作按钮和打印在客户机上启动一个应用程序在客户端或服务器上读/写文件或文件夹重新传输从服务器上捕获的现场数据流从Web站点访问者处向用户发送机密的电子邮件2.2 java
10、script并非Java不同的公司:sun、Netscape(网景);不同类型:面向对象编译型、基于对象解释型;独立性:单独执行、嵌入到HTM1,不能单独运行;2.3 javascript在客户端应用的三部分构成作为核心的ECMASCript:语言基础,定义了基本的语法和语义;javascript的核心,描述该语言的语法和基本对象ECMA标准JSCriPt是ECMASeriPt的一种实现,功能较多ActionScriptf1ashAIRFIexNetscape1iveWire是javascript在服务器端的实现JavaScriptHTM1XM1Ajax文档对象模型Dc)M:操作HTM1/XM
11、1的AP1描述处理网页内容的方法和接口W3C标准;浏览器对象模型BOM:操作浏览器功能的API,描述与浏览器进行交互的方法和接口;开发环境1)选择一个自己喜欢的编辑器 Notepad+.VIM Editp1usGedit Emacs 其它2)符合W3C标准的浏览器 Firfox IE Goog1echrome Opera Safari3)调试工具.Firefox下的firebugvenkman等,FF-辅助选项”-“firebug”-安装或者下载到firebug插件拖入浏览器即可IE下的iedeve1opertoo1bar,IE-“工具”“开发人员工具”2.4javascript的引用在Vhe
12、ad内部标记包含式VtitIe第三functionshowA1ert()a1ert(web);)JS外部引用式VtitIe第三种。web程序设计common.js文件内容functionShowA1ert()a1ert(web程序设计“);事件跟随式VtitIe第三bodyon1oad=,window.a1ert(he11oWeb第三节语言基础3.1 注意事项语句分隔符;注释标记/单行注释/*/多行注释3.2 数据类型三种主要数据类型,两种复合数据类型和两种特殊数据类型主要(基本)数据类型字符串数值布尔复合(引用)数据类型.对象数组特殊数据类型 nu11 undefined注意事项: Stri
13、ng字符串类型:字符串是用单引号或双引号来说明的; 数值数据类型:JaVaSCriPt支持整数和浮点数。整数可以为正数、O或者负数;浮点数可以包含小数点、也可以包含一个“e”(大小写均可,表示“10的幕”); Boo1ean类型:true和fa1se,不能用1和0; UndefIned数据类型:变量创建后未赋值; NU11数据类型:没有任何值,什么也不表示;3.3 判断数据类型typeof运算符说明:返回一个用来表示表达式数据类型的字符串有六种可能:numberstringboo1eanobjectfunctionundefined!-vara=18;Varb=”今年18”;varc=true;document,write(typeof(a);document,write(typeof(b);document,write(typeof(c);document,write(typeof(d);document,write(typeof(window);/object