javascript教程.docx
《javascript教程.docx》由会员分享,可在线阅读,更多相关《javascript教程.docx(80页珍藏版)》请在冰豆网上搜索。
javascript教程
教学内容:
JavaScript语言基础
JavaScript内置对象
窗口window对象
文档document对象
表单form对象
History与Navigator对象
JavaScript框架编程
JavaScript异常处理
自定义JavaScript对象
1
第一章JavaScript语言基础
什么是JavaScript
JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语
言。
JavaScript的出现弥补了HTML语言的不足,它是Java与HTML折中的选择,具有以下几个基
本特点。
1、脚本编写
JavaScript是一种脚本语言,它采用小程序段的方式实现编程。
它作为一种解释性语言,不需要
进行编译,而是在程序运行过程中逐行地被解释。
2、基于对象
JavaScript是一种基于对象的语言,这意味着它能运用自己已经创建的对象。
因此,许多功能可
能来自于JavaScript运行环境(即浏览器本身)中对象的方法与JavaScript的对象相互作用。
3、简单性
JavaScript的简单性首先主要体现在它基于Java的基本语句和控制流,是一种简单而紧凑的
语言,对于学习Java是一种非常好的过度;其次,它的变量类型是采用“弱类型”,并未使用严格
的数据类型。
4、安全性
JavaScript是一种安全性语言,它不允许访问本地的硬盘,而且不能将数据存入到服务器上;
不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据
的丢失。
5、动态性
JavaScript是动态的,它可以直接对用户或客户输入做出响应而无需经过Web服务程序。
它对
用户的响应是采用以事件驱动的方式进行的。
所谓事件驱动,就是指在页面中执行某种操作所产生的动
作,比如按下鼠标、移动窗口或选择菜单等都可以视为事件,当事件发生后就会引起相应的事件响应。
6、跨平台性
JavaScript仅依赖于浏览器本身,与操作系统无关,只要是能运行浏览器的计算机,并支持
JavaScript的浏览器就可以正确执行。
从而实现“编写一下,走遍天下”的梦想。
2
Java和Javascript的区别
1、基于对象和面向对象
Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。
JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。
它是
一种基于对象(ObjectBased)和事件驱动(EventDriver)的编程语言。
因而它本身提供了非
常丰富的内部对象供设计人员使用。
2、解释和编译
两种语言在其浏览器中所执行的方式不一样。
Java的源代码在传递到客户端执行之前,必须经过
编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立
于某个特定的平台编译代码的束缚。
JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文
本格式的字符代码发送给客户编由浏览器解释执行。
3、强变量和弱变量
两种语言所采取的变量是不一样的。
Java采用强类型变量检查,即所有变量在编译之前必须作声明。
JavaScript中变量声明,采用其弱类型。
即变量在使用前不需作声明,而是解释器在运行时检
查其数据类型,
4、代码格式不一样
Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节
代码的形式保存在独立的文档中。
JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。
编写
HTML文档就像编辑文本文件一样方便。
5、嵌入方式不一样
在HTML文档中,两种编程语言的标识不同,JavaScript使用来标
识,而Java使用来标识,或采用java脚本语言。
6、静态联编和动态联编
Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。
JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,如不经编译则就
无法实现对象引用的检查。
3
第一节语言基础
编写JavaScript程序
1、JavaScript直接嵌入HTML文件中
写在head或body标记对之间,要加标记如下:
document.write("HelloWorld!
");
2、JavaScript程序存放在单独的.js文件中,再在HTML文件中链接
在.js文件中直接书写javascript代码即可。
functionshow(){
document.write("helloworld!
");
}
基本数据类型
在JavaScript中有四种基本的数据类型:
数值型(整数和实数)
字符串型(用""号或''号括起来的字符或数值)
布尔型(使用true或false表示)
空值(null)
变量
在程序执行过程中值可变的量,是系统内存中的一个命名的存储单元。
变量的命名:
4
变量名以字母开头,中间可以出现数字,下划线。
变量名不能有空格、+或其他符号
不能使用JavaScript的关键字作为变量。
如:
var、int、double、delete
变量名第一个单词全部小写,第二个单词开始每个单词的首字母大写,其余字母小写。
声明(定义)变量:
varx,myString;
vary=100,st="hello";
cost=23.6;
JavaScript中的保留字(关键字):
abstractbooleanbreakbytecasecatch
charclassconstcontinuedefaultdo
doubleelseextendsfalsefinalfinally
floatforfunctiongotoifimplements
importininstanceofintinterfacelong
nativenewnullpackageprivateprotected
publicreturnshortstaticsuperswitch
synchronizedthisthrowthrowstransienttrue
tryvarvoidwhilewith
变量的作用域
在JavaScript中有全局变量和局部变量之分。
全局变量时定义在所有函数体之外,其作用范围
是所有函数;而局部变量时定义在函数体之内,只对该函数是可见的。
varquanju=100;
functionget(){
vari=10;
if(true){
varj=1;
}
}
常量
在程序执行过程中其值不可改变的量。
1、整型常量
如:
123,512
2、实型常量
5
实型常量是由整数部分加小数部分表示,如3.14,12.43等,也可以使用科学或标准方法表示,
如5E7,4e5等。
3、布尔值
布尔常量只有两种取值true或false。
主要用来说明或代表一种状态或标志,用以控制操作流
程
4、字符型常量
字符型常量是指使用单引号(')括起来的字符或双引号(")括起来的字符串。
例如,字符'a',
字符串"hello"。
JavaScript也支持以反斜杠(\)开头的不可显示的特殊字符,通常称为控制字符。
例如换行符
('\r')、制表符('\t')等
5、空值
JavaScript中有一个空值null,表示什么也没有。
如试图引用没有定义的变量,就会返回一个
null值。
运算符
运算符是完成某种操作的符号。
算术运算符:
+,-,*,/,%,++,--
比较运算符:
==,>,>=,<,<=,!
=
逻辑运算符:
&&,||,!
赋值运算符:
=,+=,-=,*=,/=,
表达式
x=100;
str="你好";
t=null;
表达式通常是由变量、常量和函数通过运算符构成的有意义的算式。
如:
a,a*2/3,(x+y)*10+(z-3)*20,x==y
第二节控制结构
1、if语句
if(表达式){
语句块;
6
}
x=80;
if(x>=60){
document.write("恭喜你,及格了!
");
}
if(表达式){
语句块1;
}else{
语句块2;
}
if(x>=0){
y=x;
}else{
y=-x;
}
2、switch语句
switch(表达式){
case值1:
语句1;break;
case值2:
语句2;break;
case值3:
语句3;break;
default:
语句4;
}
functiongetWeek(week){
switch(week){
case0:
st="星期日";
break;
case1:
st="星期一";
break;
case2:
st="星期二";
7
break;
case3:
st="星期三";
break;
case4:
st="星期四";
break;
case5:
st="星期五";
break;
case6:
st="星期六";
break;
default:
st="错误";
}
returnst;
}
3、for语句
for(初值表达式;条件表达式;更新语句){
//循环体语句
}
4、While语句
while(条件表达式){
//循环体语句
}
break语句:
结束当前的循环或switch语句。
continue语句:
用于for或while语_______句中,结束本次循环,继续下一次循环。
8
第三节函数
函数是一个设定名字的一系列JavaScript语句的有效组合。
函数可以带参数,也可以不带,可以有返回值,也可以没有
1、函数的定义
function函数名([参数列表]){
语句块;
[return表达式;]
}
//例:
返回两个参数中较大的。
functionmax(a,b){
varx;
if(a>b)
x=a;
else
x=b;
returnx;
}
2、调用函数
函数被调用时函数内的代码才真正被执行。
调用函数的方法就是使用函数的名称并赋给全部参数相应的值。
max(20,30);
或
9
在JavaScript中调用函数时,可以向函数传递比在函数定义时参数数目要少的参数。
在这种情
况下,只要不是试图去读那些没有传递过来的参数就行。
用typeof运算符可以得到参数的类型。
对于未传递的参数,用typeof运算符得到的结果是
“undefined”。
示例如下:
functionget(a,b){
document.write("参数a的数据类型是:
"+typeof(a)+"
");
document.write("参数b的数据类型是:
"+typeof(b));
}
get(32.4);
效果如下:
另外,JavaScript也可以向函数传递比在函数定义时参数数目要多的参数,为了读取这样的参
数,可以使用arguments数组。
传递给函数的第一个参数是arguments数组的第一个元素,我们可
以用“函数名称.arguments[0]”来进行引用。
示例如下:
functiongetSum(){
varsum=0;
varnumber=getSum.arguments.length;//使用函数的参数数组
for(vari=0;isum+=getSum.arguments[i];
}
returnsum;
}
document.write("23+54+65="+getSum(23,54,65));
10
效果如下:
第四节JavaScript系统函数
JavaScript中的系统函数又称为内部方法,它们不属于任何对象,可以直接使用。
它们可以完成许
多很常用的功能。
1、eval(字符串表达式)
返回字符串表达式中的运算结果值。
例:
test=eval("x=8+9+5/2");
document.write(test);//输出显示19.5
2、escape(字符串)
返回字符串的一种简单编码,将非字母数字的符号转换为%加其unicode码的十六进制表示。
例如:
escape("Hellothere")返回"Hello%20there"
3、unescape(字符串)
将已编码的字符串还原为纯字符串。
4、parseFloat(字符串)
返回浮点数
5、parseInt(字符串,radix)
其中radix是数的进制,默认是十进制数parseInt(字符串)
第五节事件驱动及事件处理
在JavaScript中编写的函数,通常是在其他代码进行调用时才会执行。
不过我们也可以将某个
11
函数与某个事件(Event,通常是鼠标或热键的动作)联系起来,使得当事件发生时执行该函数。
这个
方法称之为事件驱动(EventDriver)。
而对事件进行处理的函数,称之为事件处理程序(Event
Handler事件句柄)。
1、事件
JavaScript事件驱动中的事件是通过鼠标或热键的动作(点击或按下)引发的。
下表中列出了
常见的事件及其说明。
FF:
Firefox,N:
Netscape,IE:
InternetExplorer
属性说明FFNIE
onabort图像加载被中断134
onblur元素失去焦点123
onchange用户改变域的内容123
onclick鼠标点击某个对象123
ondblclick鼠标双击某个对象144
onerror当加载文档或图像时发生某个错误134
onfocus元素获得焦点123
onkeydown某个键盘的键被按下143
onkeypress某个键盘的键被按下或按住143
onkeyup某个键盘的键被松开143
onload某个页面或图像被完成加载123
onmousedown某个鼠标按键被按下144
onmousemove鼠标被移动163
onmouseout鼠标从某元素移开144
onmouseover鼠标被移到某元素之上123
onmouseup某个鼠标按键被松开144
onreset重置按钮被点击134
onresize窗口或框架被调整尺寸144
onselect文本被选定123
12
onsubmit提交按钮被点击123
onunload用户退出页面123
2、事件与函数的关联
要将一个函数与某个HTML元素的事件关联起来,需要设置相应的HTML标记中的属性值。
例如,
对于一个button元素的click事件的处理函数为MyProc(),则可以用如下的形式将事件与函数关
联起来:
functionmyPorc(){
alert(document.all("txt").value);
}
另一个示例,实现翻转图的效果,原来在网页上显示一幅图片,当用户把鼠标移到该图像上时,自
动将图像切换成新的一幅图片;当用户把鼠标移开时,最初的图像又被恢复回来。
//处理mouseover事件
functionimgover(){
document.myForm.img1.src="color.jpg";
}
//处理mouseout事件
functionimgout(){
document.myForm.img1.src="gray.jpg";
}
onmouseover="imgover();"
onmouseout="imgout()">
13
课后练习题:
1、计算1加到100的和
2、使用while语句计算1加到100的和
3、打印100以内的偶数序列:
02468。
。
。
4、循环1-100,单数次输出“好好学习!
”,偶数次输出“天天向上!
”
5、在死循环中用if和break实现连续打印20个*就结束循环。
6、编程查找满足下列条件的三个正整数:
x+y+z=50并且x+2*y+5*z=100
7、编写函数输出下面的图案
*
**
***
****
最多的星数目为函数参数n所决定。
8、将a,b,c三个整数按它们数值的大小,从小到大的顺序打印显示。
(练习ifelse语句)
9、编写函数输出下面的图案
*
**
***
****
***
**
*
行数为函数的参数n决定。
10、编写函数寻找水仙花数。
(三位数各位数字的立方和恰巧是该数本身,100到999之间有四个这样的数)。
14
第二章JavaScript内置对象
对象概述
JavaScript是一种基于对象的脚本语句,而不是面向对象的编程语言。
对象就是客观世界存在的实体,具有属性和方法两方面特性。
访问对象的属性和方法的方式如下:
对象名.属性
对象名.方法名()
第一节数组对象类型Array
数组可以存放很多相同类型的数据。
有数组名代表所有这些数据,而用
数组名[下标]表示其中某个元素(下标从0开始)。
如:
varmyA=["张三","李四","王五"];
document.write(myA);//看到所有三个字符串
myA[0]指向第一个元素
myA[2]指向第三个元素
1、建立数组的三种方法:
(1)使用方括号,创建数组的同时赋初值
varmyA=["张三","李四","王五"];
varb=[10,20,30,40];
(2)使用new操作符,创建数组的同时赋初值
varmyA=newArray("张三","李四","王五");
注意圆括号和方括号的区别,不能任意使用。
(3)先创建长度为10的数组,内容后面再赋值
varanArray=newArray(9);
anArray[0]="张三";
anArray[1]="李四";
anArray[2]="王五";
15
2、数组的属性
length
数组名.length返回数组中元素的个数
如:
myA.length为3
例:
使用for语句输出myA数组的各个元素。
for(i=0;ialert(myA[i]);
}
3、数组的方法
join(分割符)
该方法的功能是把数组中所有数据用指定的分割符连接起来,以一个字符串的形式表达出来。
例如:
myA.join("/")返回一个字符串"张三/李四/王五"
reverse()
该方法的功能是将数组中的元素整个反转顺序。
例如:
myA.reverse()数组变为["王五","李四","张三"]
sort()
该方法的功能是将数组元素排序(汉字按拼音的字母顺序)。
例如:
myA.sort()数组变为["李四","王五","张三"]
concat()
方法用于连接两个或多个数组。
下面的例子将把concat()中的参数连接到数组a中
vara=[1,2,3];
document.write(a.concat(4,5));
//输出结果是:
//1,2,3,4,5
下面的例子创建了两个数组,然后使用concat()把它们连接起来
vararr=["George","John","Thomas"];
16
vararr2=["James","Adrew","Martin"];
document.write(arr.concat(arr2));
//输出结果是:
//George,John,Thomas,James,Adrew,Martin
下面的例子创建了三个数组,然后使用concat()把它们连接起来
vararr=["George","John","Thomas"];
vararr2=["James","Adrew","Martin"];
vararr3=["William","Franklin"];
document.write(arr.concat(arr2,arr3));
//输出结果是:
//George,John,Thomas,James,Adrew,Martin,William,Franklin
pop()
方法用于删除并返回数组的最后一个元素。
删除数组的最后一个元素,把数组长度减1,并且返回它删除的元素的值。
如果数组已经为空,
则pop()不改变数组,并返回undefined值。
vararr=["George","Joh