《javascript教程从入门到精通.docx》由会员分享,可在线阅读,更多相关《javascript教程从入门到精通.docx(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JavaScript教程从入门到精通JavaScript是由Netscape公司开发并随Navigator浏览器一起发布的、介于Java与HTML 之间、基于对象事件驱动的编程语言,正日益受到全球的关注。因它的开发环境简单,不需 要Java编译器,而是直接运行在Web浏览器中,因而倍受Web设计者的所爱。这一套JavaScript教程分九个章节从什么是JavaScript JavaScript的简单应用一直介绍 到如何用JavaScript实现复杂的交互,对于JavaScript初学者和进阶者来说,都是一部不可 多得的优秀教程。目录JavaScript教程-从入门到精通11 JavaScrip
2、t 语言概况3什么是 JavaScript41.1 JavaScript 和 Java 的区另U5JavaScript 程序运彳亍环境71.2 编写第一个 JavaScript 程序8JavaScript基本数据结构101.3 JavaScript 代码的加入10基本数据类型111.4 表达式和运算符14范例152 JavaScript 程序构成17程序控制流172.1 函数19事件驱动及事件处理202.2 范例22基于对象的 JavaScript 语言272.3 对象的基础知识27常用对象的属性和方法312.4 范例34在 JavaScript中仓ll建新对象382.5 对象的定义38创建对
3、象实例392.6 对象方法的使用39JavaScript 中 的数组402.7 范例43JavaScript对象系统的使用482.8 浏览器对象层次及其主要作用48JavaScript基本数据结构JavaScript提供脚本语言的编程与C+非常相似,它只是去掉了 C语言中有关指针等容 易产生的错误,并提供了功能强大的类库。对于已经具备C+或C语言的人来说,学习 JavaScript脚本语言是一件非常轻松愉快的事。2.1 JavaScript代码的加入JavaScript的脚本包括在HTML中,它成为HTML文档的一部分。与HTML标识相结 合,构成了一个功能强大的Internet网上编程语言。
4、可以直接将JavaScript脚本加入文档:JavaScript语言代码;JavaScript语言代码; 说明:通过标识Script/Script,指明JavaScript脚本源代码将放入其间。通过属性Language =JavaScript”说明标识中是使用的何种语言,这里是JavaScript语言, 表示在JavaScript中使用的语言。下面是将JavaScript脚本加入Web文档中的例子:Test2.html Script Language =JavaScript”)document. Write。这是赛迪网互动学校)document. close();在浏览器的窗口中调用test2
5、.html,则显示“这是赛迪网互动学校”字串。见图2所示。图2说明:Document, write。是文档对象的输出函数,其功能是将括号中 的字符或变量值输出到窗口; document. close。是将输出关闭。 可将Script./Script标识放入Head). 或 .v/Body之间。将 JavaScript 标识放置46. 在头部之间,使之在主页和其余部分代码之前装载,从而可使代 码的功能更强大;可以将JavaScript标识放置在vBody. 主体之间以实现某些部分动态地创建文档。2.2 基本数据类型JavaScript脚本语言同其它语言一样,有它自身的基本数据类型、表达式和算术运
6、算符 以及程序的基本框架结构。JavaScript提供了四种基本的数据类型用来处理数字和文字,而 变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。1、基本数据类型在JavaScript中四种基本的数据类型:数值(整数和实数)、字符串型(用号或“括起 来的字符或数值)、布尔型(使True或False表示)和空值。在JavaScript的基本类型中的 数据可以是常量,也可以变量。由于JavaScript采用弱类型的形式,因而一个数据的变量或 常量不必首先作声明,而是在使用或赋值时确定其数据的类型的。当然也可以先声明该数据 的类型,它是通过在赋值时自动说明其数据类型的。2、常量整型常量:J
7、avaScript的常量通常又称字面常量,它是不能改变的数据。其整型常量可 以使用十六进制、八进制和十进制表示其值。实型常量:实型常量是由整数部分加小数部分表示,如12.32、193.98。可以使用科学 或标准方法表示:5E7、4e5等。布尔值:布尔常量只有两种状态:True或False。它主要用来说明或代表一种状态或标 志,以说明操作流程。它与C+是不一样的,C+ +可以用1或0表示其状态,而JavaScript 只能用True或False表示其状态。字符型常量:使用单引号(D或双引号(”)括起来的一个或几个字符。如his is a book of JavaScript n3245 newr
8、t234234n 等。空值:JavaScript中有一个空值null,表示什么也没有。如试图引用没有定义的变量,则返 回一个Null值。特殊字符:同C语言一样,JavaScript中同样以有些以反斜杠()开头的不可显示的特 殊字符。通常称为控制字符。3、变量变量的主要作用是存取数据、提供存放信息的容器。对于变量必须明确变量的命名、变 量的类型、变量的声明及其变量的作用域。变量的命名JavaScript中的变量命名同其计算机语言非常相似,这里要注意以下两点: 必须是一个有效的变量,即变量以字母开头,中间可以出现数字如testl、text2等。 除下划线 O 作为连字符外,变量名称不能有空格、(
9、十 )、(一)、(,)或其它符 号。 不能使用JavaScript中的关键字作为变量。在JavaScript中定义了 4 0多个类键字,这些关键是JavaScript内部使用的,不能作为变量的名称。如var、int、double true不能作为变量的名称。在对变量命名时,最好把变量的意义与其代表的意思对应起来,以免出现错误。变量的类型在JavaScript中,变量可以用命令var作声明:var mytest;该例子定义了一个mytest变量。但没有赋予它的值。var mytest=,this is a book”该例子定义了一个mytest变量,同时赋予了它的值。在JavaScript中,变
10、量以可以不作声明,而在使用时再根据数据的类型来确其变量的类 型。如:x=100y=n125nxy= Truecostal9.5 等。其中x整数,y为字符串,xy为布尔型,cost为实型。变量的声明及其作用域JavaScript变量可以在使用前先作声明,并可赋值。通过使用var关键字对变量作声明。 对变量作声明的最大好处就是能及时发现代码中的错误;因为JavaScript是采用动态编译的, 而动态编译是不易发现代码中的错误,特别是变量命名的方面。对于变量还有一个重要性那就是变量的作用域。在JavaScript中同样有全局变量和 局部变量。全局变量是定义在所有函数体之外,其作用范围是整个函数;而局
11、部变量是定义 在函数体之内,只对其该函数是可见的,而对其它函数则是不可见的。2.3 表达式和运算符1、表达式在定义完变量后,就可以对它们进行赋值、改变、计算等一系列操作,这一过程通常又 由一个表达式来完成,可以说它是变量、常量、布尔及运算符的集合,因此表达式可以分为 算术表述式、字串表达式、赋值表达式以及布尔表达式等。2、运算符运算符完成操作的一系列符号,在JavaScript中有算术运算符,如+、-、*、/等;有比 较运算符如!=、=等;有逻辑布尔运算符如!(取反)、|、|;有字串运算如+、+=等。在JavaScript主要有双目运算符和单目运算符。其双目运算符由下列组成:操作数1运算符操作
12、数2即由两个操作数和一个运算符组成。如50+40、”this+”that”等。单目运算符,只需一 个操作数,其运算符可在前或后。(1 )算术运算符JavaScript中的算术运算符有单目运算符和双目运算符。双目运算符:+(加)、-(减)、* (乘)、/(除)、 (取模)、| (按位或)、&(按 位与)、 (左移)、 (右移)、 (右移,零填充)。单目运算符:-(取反)、(取补)、+ (递加1)、-(递减Do(2)比较运算符比较运算符它的基本操作过程是,首先对它的操作数进行比较,尔后再返回一个true 或False值,有8个比较运算符:(小于)、(大于)、二(小于等于)、=(大于等于)、=(等
13、于)、!=(不等于)。(3)布尔逻辑运算符在JavaScript中增加了几个布尔逻辑运算符:!(取反)、&=(与之后赋值)、& (逻辑 与)、|=(或之后赋值)、| (逻辑或)、八二(异或之后赋值)、A (逻辑异或)、?:(三目 操作符)、II (或)、=(等于)、1=(不等于)。其中三目操作符主要格式如下:操作数?结果1:结果2若操作数的结果为真,则表述式的结果为结果1,否则为结果2。2.4 范例下面是一个跑马灯效果的JavaScript文档。Test2_l.htmlvar msg”这是一个跑马灯效果的JavaScript文档”;var interval = 100;var spacelen
14、 = 120;var space 10=var seq=0;function Scroll() len = msg.length;window.status = msg.substring(O, seq+1);seq+;if ( seq = len ) seq = spacelen;window.setTimeoutCScrolO;, interval);)elsewindow.setTimeout(Scroll();n, interval);)function Scroll2() var out=n;for (i=l; i= len ) seq = 0; ;window.setTimeout
15、(Scron2();, interval);)Scroll();本文介绍了 JavaScript脚本是如何加入Web页面,并学习了 JavaScript语言中的基本数 据类型、变量、常量、操作运算符等。可以看出,对于已经掌握C+语言的人来说,学习JavaScript真是一件非常轻松愉快的事。3 JavaScript程序构成JavaScript脚本语言的基本构成是由控制语句、函数、对象、方法、属性等,来实现编程 的。3.1 程序控制流在任何一种语言中,程序控制流是必须的,它能使得整个程序减小混乱,使之顺利按其 一定的方式执行。下面是JavaScript常用的程序控制流结构及语句:1、if条件语句
16、基本格式if (表述式)语句段1 ;else语句段2 ;功能:若表达式为true,则执行语句段1;否则执行语句段2。说明:if-else语句是JavaScript中最基本的控制语句,通过它可以改变语句的执行顺序。表达式中必须使用关系语句,来实现判断,它是作为一个布尔值来估算的。它将零和非零的数分别转化成false和trueo若if后的语句有多行,则必须使用花括号将其括起来。if语句的嵌套if (布尔值)语句1 ;else (布尔值)语句2 ;else if (布尔值)语句3 ;else语句4 ;在这种情况下,每一级的布尔表述式都会被计算,若为真,则执行其相应的语句,否则 执行else后的语句。
17、3.2 for循环语句基本格式for (初始化;条件;增量)语句集;功能:实现条件循环,当条件成立时,执行语句集,否则跳出循环体。说明:初始化参数告诉循环的开始位置,必须赋予变量的初值;条件:是用于判别循环停止时的条件。若条件满足,则执行循环体,否则 跳出。增量:主要定义循环控制变量在每次循环时按什么方式变化。三个主要语句之间,必须使用逗号分隔。3、while 循环基本格式while (条件)语句集;该语句与for语句一样,当条件为真时,重复循环,否则退出循环。for与while语句两种语句都是循环语句,使用for语句在处理有关数字时更易看懂,也较紧凑;而while 循环对复杂的语句效果更特别
18、。4、break 和 continue 语句与C+语言相同,使用break语句使得循环从for或while中跳出,continue使得跳过循 环内剩余的语句而进入下一次循环。3.3 函数函数为程序设计人员提供了一个丰常方便的能力。通常在进行一个复杂的程序设计时 总是根据所要完成的功能,将程序划分为一些相对独立的部分,每部分编写一个函数。从而, 使各部分充分独立,任务单一,程序清晰,易懂、易读、易维护。JavaScript函数可以封装 那些在程序中可能要多次用到的模块。并可作为事件驱动的结果而调用的程序。从而实现一 个函数把它与事件驱动相关联。这是与其它语言不样的地方。1、JavaScript函
19、数定义function函数名(参数,变元)函数体;.return 表达式;)说明:当调用函数时,所用变量或字面量均可作为变元传递。函数由关键字function定义。函数名:定义自己函数的名字。参数表,是传递给函数使用或操作的值,其值可以是常量,变量或其它表达式。通过指定函数名(实参)来调用一个函数。必须使用return将值返回。函数名对大小写是敏感的。2、函数中的形式参数:在函数的定义中,我们看到函数名后有参数表,这些参数变量可能是一个或几个。那么 怎样才能确定参数变量的个数呢?在JavaScript中可通过arguments .Length来检查参数的个 数。例:1.2 文档对象功能及其作用
20、49范例517 JavaScript窗 口及输入输出54窗口及输入输出547.1 简单的输入、输出例子57范例598 用JavaScript脚本实现 Web页面信息交互62窗体基础知识628.1 窗体中的基本元素64范例689 用 JavaScript实现更复杂的交互73什么是框架739.1 如何访问框架74范例74function function_Name(exp I,exp2,exp3,exp4)number =function_Name .arguments .length;if (number0) document.write(exp 1);else if (numberl) doc
21、ument.write(exp2);else if (number2)document.write(exp3);else if(number3)document.write(exp4);else document.write(no args);3.3事件驱动及事件处理1、基本概念JavaScript是基于对象(object-based)的语言。这与Java不同Java是面向对象的语言。而 基于对象的基本特征,就是采用事件驱动(event-driven)。它是在用形界面的环境下,使得一 切输入变化简单化。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发 的一连串程序的动作,称
22、之为事件驱动(Event Driver)o而对事件进行处理程序或函数,我 们称之为事件处理程序(Event Handler)o2、事件处理程序在JavaScript中对象事件的处理通常由函数(function)担任。其基本格式与函数全部一样, 可以将前面所介绍的所有函数作为事件处理程序。格式如下:function事件处理名(参数表)事件处理语句集;3、事件驱动JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的。它主要有以下儿个事件:(1 )单击事件onClick当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码 将被调用执行。通常在下列基本对
23、象中产生:button (按钮对象)checkbox (复选框)或(检查列表框)radio (单选钮)reset buttons (重置按钮)submit buttons (提交按钮)例:可通过下列按钮激活change。文件:Input type=button” Value=Click Me onClick二change。”,在onClick等号后,可以使用自己编写的函数作为事件处理程序,也可以使用JavaScript 中内部的函数。还可以直接使用JavaScript的代码等。例:Input type=button” value= onclick=alert(这是一个例子”);(2 ) onC
24、hange改变事件当利用text或texturea元素输入字符值改变时发该事件,同时当在select表格项中一个 选项状态改变后也会引发该事件。例:(3 )选中事件onSelect当Text或Textarea对象中的文字被加亮后,引发该事件。(4 )获得焦点事件onFocus当用户单击Text或textarea以及select对象时,产生该事件。此时该对象成为前台对象。(5 )失去焦点onBlur当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocus事件是一个对应的关系。(6 )载入文件onLoad当文档载入时,产生该事件。onLoa
25、d 一个作用就是在首次载入一个文档时检测cookie 的值,并用一个变量为其赋值,使它可以被源代码使用。(7 )卸载文件onUnload当Web页面退出时引发onUnload事件,并可更新Cookie的状态。3.4范例范例1:下例程序是一个自动装载和自动卸载的例子。即当装入HTML文档时调用 loadform。函数,而退出该文档进入另一 HTML文档时则首先调用unloadform。函数,确认后方 可进入。test3_l.htmscript Language=JavaScript”, 调用 v/a范例2:这是一个获取浏览器版本号的程序。该程序首先显示一个波浪一提示信息。之 后显示浏览器的版本号
26、有关信息。test3_2.htmfunction make Array (n)this.lengthreturn this)function hexfromdec(num) hex=new makeArray(l);var hexstring=,H,;var shifthex=16;var templ=num;for(x=l; x=0; x) hexx=Math.round(temp I /shifthex - .5);hexx-l=templ - hexx * shifthex;templ=hexx-l;shifthex /= 16;)for (x=l; x=0; x) hexstring+
27、=getletter(hexx); return (hexstring);function getletter(num) if (num 10) return num; else if (num = 10) return nA if (num = 11) return B if (num = 12) return CH if (num = 13) return nDn if (num = 14) return nEH if (num = 15) return F )function rainbow(text)var color_d I;var allstring=;for(i=0;itext.
28、length;i=i+2) color_dl=255*Math.sin(i/(text.length/3);color_h 1 =hexfromdec(color_dl);allstring4-=H+text.substring(i,i+2)+H;)return allstring;)function sizefont(text)var color_d 1;var allstring=n;var flag=0;for(i=0,j=0;i=7) flag=l;if (flag=l) if 0=O) flag=O; allstring+=n” + text.substring(i,i+l) + n
29、;)return allstring;)document.write(n)document.write(nn)document.write( sizefont(这是一个获取WEB浏览器的程序”)document. write( n)document.write(浏 览器名称:+navigator.appName+H);document.write(版本号:+navigator.appVersion+);document.write(代码名字:n+navigator.appCodeName+n);document.write(用 户彳弋理标识:+navigator.userAgent);输出结果
30、图1所不。刍D:JavaScriptest3 2. htm口|x|文件g编辑x)查看w转到收藏因帮助国)9*,盥Id图3 日里1昌蜀后退 .进 停止 刷新 主页 搜索 收藏 历史 全屏 邮件 打印编辑地址 |字| D: JagaScripest3_2. htm链接 Internet Explorer 新闻 Internet 开始 为 Internet 起始页这是一个获耳乂 WEb浏览有版程序ZI浏览器名称:Microsoft Internet ExplorerH版本号:4.0 (coirpatible; MSIE 5. Obi; Windows 98) 代码招字:_Mozilla用户代理标识:
31、Mozilla/4. 0 (c。叫atible; MSIE 5. Obi; Windows 98)7旬用我的电脑本讲介绍了 JavaScript程序设计的有关内容。程序流、函数、事件是我们学习掌握JavaScript 编程的重点。4基于对象的JavaScript语言JavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)o之 所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对 象语言的许多功能。而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的 对象系统。虽然JavaScript语言是一门基于
32、对象的,但它还是具有一些面向对象的基本特征。它可 以根据需要创建自己的对象,从而进一步扩大JavaScript的应用范围,增强编写功能强大的 Web文档。4.1对象的基础知识1、对象的基本结构JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前 者是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联;后者是 指对象能够按照设计者的意图而被执行,从而与特定的函数相联。2、引用对象的途径一个对象要真正地被使用,可采用以下几种方式获得: 引用JavaScript内部对象; 由浏览器环境中提供; 创建新对象。这就是说一个对象在
33、被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错 误信息从上面中我们可以看出JavaScript引用对象可通过三种方式获取。要么创建新的对 象,要么利用现存的对象。3、有关对象操作语句JavaScript不是一纯面向对象的语言,它设有提供面向对象语言的许多功能,因此 JavaScript设计者之所以把它你“基于对象”而不是面向对象的语言,在JavaScript中提供了几 个用于操作对象的语句和关键字及运算符。(1) for.in 语句格式如下:for (对象属性名in已知对象名)说明: 该语句的功能是用于对已知对象的所有属性进行操作的控制循环。它是将一个已知对象的所有属性反复置给一个
34、变量;而不是使用计数器来实现的。 该语句的优点就是无需知道对象中属性的个数即可进行操作。例:下列函数是显示数组中的内容:function showData(object)for (var X=0; X birthday作为一个新的日期对象了。4、对象属性的引用对象属性的引用可由下列三种方式之一实现:(1)使用点(.)运算符un i vers i ty. N ame=云南 省university.city=u 昆明市”university.Date=H 1999其中university是一个已经存在的对象,Name City、Date是它的三个属性,并通过操 作对其赋值。(2)通过对象的下标实现
35、引用universityO=“云南”university 1= 昆明市university 2= 199911 JavaScript语言概况Internet时代,造就了我们新的工作和生活方式,其互联性、开放性和共享信息的模式, 打破了传统信息传播方式的重重壁垒,为我们带来了新的机遇。随着计算机和信息时代的到 来,人类社会前进的脚步在逐渐加快,每一天都有新的事情发生,每一天都在创造着奇迹。 随着Internet技术的突飞猛进,各行各业都在加入Internet的行业中来。无论从管理方面, 还是从商业角度来看,Internet都可以带来无限生机。通过Internet,可以实现地区、集体乃 至个人的连
36、接,从而达到一种“统一的和谐”。那么怎样把自己的或公司的信息资源加入到 WWW服务器,是广大用户日益关心的问题。采用超链技术(超文本和超媒体技术)是实 现这个目标最简单的、最快速的手段和途径。具体实现这种手段的支持环境,那就是HTML 超文本标识语言。通过它们可制作所需的Web网页。通过超文本(Hyper Text)和超媒体(Hyper Media)技术结合超链接(Hyper link)的链接功能 将各种信息组织成网络结构(web),构成网络文档(Document),实现Internet上的“漫游工 通 过HTML符号的描述就可以实现文字、表格、声音、图像、动画等多媒体信息的检索。然而采用这种
37、超链技术存在有一定的缺陷,那就是它只能提供一种静态的信息资源,缺 少动态的客户端与服务器端的交互。虽然可通过CGI(Common Gateway Interface)通用网关接 口实现一定的交互,但由于该方法编程较为复杂,因而在一段时间防碍了 Internet技术的发 展。而JavaScript的出现,无凝为Internet网上用户带来了一线生机。可以这样说JavaScript 的出现是时代的需求,是当今的信息时代造就了 JavaScriptoJavaScript的出现,它可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是 实现了一种实时的、动态的、可交式的表达能力。从而基于CGI静态的
38、HTML页面将被可 提供动态实时信息,并对客户操作进行反应的Web页面的取代。JavaScript脚本正是满足这 种需求而产生的语言。它深受广泛用户的喜爱的欢迎。它是众多脚本语言中较为优秀的一种, 它与WWW的结合有效地实现了网络计算和网络计算机的蓝图。无凝Java家族将占领 Internet网络的主导地位。因此,尽快掌握JavaScript脚本语言编程方法是我国广大用户日益 关心的。通过数组形式的访问属性,可以使用循环操作获取其值。function showunievsity(object)for (varj=0;j2; j+)document.write(objectj)若采用for.in
39、则可以不知其属性的个数后就可以实现:function showmy(object)for (var prop in this)docament.write(thisprop);(3)通过字符串的形式实现universityName=云南university “City”= 昆明市”universityDaten=1999n5、对象的方法的引用在JavaScript中对象方法的引用是非常简单的。ObjectName.methods()实际上methods()=functionName方法实质上是一个函数。如引用university对象中的 showmy ()方法,则可使用:document.wr
40、ite (university.showmyO)或:document.write(university)如引用math内部对象中cos()的方法贝IJ:with(math)document. write(cos(35);document. write(cos(80);若不使用with则引用时相对要复杂些:document. write(Math.cos(35)document. write(math.sin(80)4.2常用对象的属性和方法JavaScript为我们提供了一些非常有用的常用内部对象和方法。用户不需要用脚本来实 现这些功能。这正是基于对象编程的真正目的。在JavaScript提供了 string (字符串)、math (数值计算)和Date (日期)三种对象和其 它一些相关的方法。从而为编程人员快速开发强大的脚本程序提供了非常有利的条件。1、常用内部对象在JavaScript中对于对象属性与方法的引用,有两种情况:其一是说该对象是静态对象, 即在引用该对象的属性或方法时不需要为它创建实例;而另一种对象则在引用它的对象或方 法是必须为它创建一个实例,即该对象是动态对象。对JavaScript内部对象的引用,以是紧紧围绕着它的属性与方法进行的。因而明确对象 的静动性对于掌握和理解JavaScript内部对象是具有非常重要的意义。1)、串