当装入HTML文档时调用,JSP上机实验六-Javascript内置对象和函数的应用

实验内容:

1. 学习Javascript事件处理

2. 掌握Javascript内置对象和函数的应用

实验步骤:

1.JavaScript函数

函数在定义时并没有被执行,只有函数被调用时,其中的代码才真正被执行。为了实现函数的定义和调用,JavaScript语句提供了两个关键字:function和return。JavaScript函数的基本语法如下:

function 函数名称(参数表)

– {

– 语句块;

– }

函数由关键字Function定义。

函数名:定义自己函数的名字。

参数表,是传递给函数使用或操作的值,其值可以是常量

,变量或其它表达式。

通过指定函数名(实参)来调用一个函数。必须使用Return将值返回。函数名对大小写是敏感的。

2.事件的概念

JavaScript事件主要包括三大类的事件:超级连接事件,浏览器事件和界面事件。

界面事件包括:

– Click(单击)

– MouseOut(鼠标– 移出)

– MouseOver(鼠标– 移过)

– MouseDown(鼠标– 按下)等。

通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event

Driver)。而对事件进行处理程序或函数,我们称之为事件处理程序(Event

Handler)。在JavaScript中对象事件的处理通常由函数(Function)担任。其基本格式与函数全部一样,可以将前面所介绍的所有函数作为事件处理程序。

格式如下:

Function 事件处理名(参数表){

事件处理语句集;

……

}

(1)单击事件onClick

当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。通常在下列基本对象中产生:

button(按钮对象)

checkbox(复选框)或(检查列表框)

radio (单选钮)

reset buttons(重要按钮)

submit buttons(提交按钮)

单击事件

VALUE="单击" ONCLICK="alert('鼠标单击')">

在onClick等号后,可以使用自己编写的函数作为事件处理程序,也可以使用JavaScript中内部的函数。还可以直接使用JavaScript的代码等。

(2)onChange改变事件

当利用text或texturea元素输入字符值改变时发该事件,同时当在select表格项中一个选项状态改变后也会引发该事件。下拉列表是常用的一种网页元素,一般利用ONCHANGE事件来处理。

onChange="check('this.test)">

(3)选中事件onSelect

当Text或Textarea对象中的文字被加亮后,引发该事件。

(4)获得焦点事件onFocus

当用户单击Text或textarea以及select对象时,产生该事件。此时该对象成为前台对象。

(5)失去焦点onBlur

当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocas事件是一个对应的关系。

(6)载入文件onLoad

当文档载入时,产生该事件。onLoad一个作用就是在首次载入一个文档时检测cookie的值,并用一个变量为其赋值,使它可以被源代码使用。

(7)卸载文件onUnload

当Web页面退出时引发onUnload事件,并可更新Cookie的状态。

3.对象的基础知识

(1)对象的基本结构

JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联;后者是指对象能够按照设计者的意图而被执行,从而与特定的函数相联。

(2)引用对象的途径

一个对象要真正地被使用,可采用以下几种方式获得:

引用JavaScript内部对象;

由浏览器环境中提供;

创建新对象。

(3)有关对象操作语句

For...in语句

格式如下:

For(对象属性名 in 已知对象名)

说明:该语句的功能是用于对已知对象的所有属性进行操作的控制循环。它是将一个已知对象的所有属性反复置给一个变量;而不是使用计数器来实现的。

var arr = new Array(3);

arr[0] = "Jack";

arr[1] = "Mike";

arr[2] = "Rose";

for(i in arr)

{

document.write("
第" +

i + "个为:" + arr[i]);

}

with语句

使用该语句的意思是:在该语句体内,任何对变量的引用被认为是这个对象的属性,以节省一些代码。

with object{

...}

所有在with语句后的花括号中的语句,都是在后面object对象的作用域的。

with(document)

{

write("你好世界
");

write("你好中国
");

write("再见");

}

this关键字

this是对当前的引用,JavaScript提供了一个用于将对象指定当前对象的语句this。

function imgclick(oimg)

{

alert("图片名称是:" +

oimg.name+"\r\n图片地址是:" + oimg.src );

}

Edit_Commit.gif

ONCLICK="imgclick(this)">

New运算符

使用New运算符可以创建一个新的对象。其创建对象使用如下格式:

Newobject=NEW Object(Parameters table);

其中Newobject创建的新对象:object是已经存在的对象; parameters

table参数表;new是JavaScript中的命令语句。

如创建一个日期新对象

newData=New Date()

birthday=New Date (December 12.1998)

之后就可使NewData、birthday作为一个新的日期对象了。

4.对象属性的引用

对象属性的引用可由下列三种方式之一实现:

使用点(.)运算符

university.Name=“云南省”

university.city=“昆明市”

university.Date="1999"

其中university是一个已经存在的对象,Name、City、Date是它的三个属性,并通过操作对其赋值。

通过对象的下标实现引用

university[0]=“云南”

university[1]=“昆明市”

university[2]="1999"

通过数组形式的访问属性,可以使用循环操作获取其值。

(3)通过字符串的形式实现

university["Name"]=“云南”

university["City"]=“昆明市”

university["Date"]="1999"

5.对象的方法的引用

在JavaScript中对象方法的引用是非常简单的。

ObjectName.methods()

实际上methods()=FunctionName方法实质上是一个函数。

如引用university对象中的showmy()方法,则可使用:document.write

(university.showmy())或:document.write(university)

6. 常用对象的属性和方法

(1) 常用内部对象

JavaScript为我们提供了一些非常有用的常用内部对象和方法。用户不需要用脚本来实现这些功能。在JavaScript提供了string(字符串)、math(数值计算)和Date(日期)三种对象和其它一些相关的方法。

(2) 日期及时间对象

功能:提供一个有关日期和时间的对象。

var curr=new Date();

document.write("今天是");

switch(curr.getDay()){

case

0:document.write("周日,休息了!");break;

case

1:document.write("周一,需要工作!");break;

case

2:document.write("周二,需要工作!");break;

case

3:document.write("周三,需要工作!");break;

case

4:document.write("周四,需要工作!");break;

case

5:document.write("周五,需要工作!");break;

case

6:document.write("周六,休息了!");break;

}

Date对象没有提供直接访问的属性。只具有获取和设置日期和时间的方法。

日期起始值:1770年1月1日00:00:00。

获取日期的时间方法

getYear(): 返回年数

getMonth():返回当月号数

getDate(): 返回当日号数

getDay():返回星期几

getHours():返回小时数

getMintes(:返回分钟数

getSeconds():返回秒数

getTime() : 返回毫秒数

设置日期和时间:

setYear();设置年

setDate():设置当月号数

setMonth():设置当月份数

setHours():设置小时数

setMintes():设置分钟数

setSeconds():设置秒数

setTime ():设置毫秒数

(3)Math对象

功能:提供除加、减、乘、除以外的一引些自述运算。如对数,平方根等

主要属性:math中提供了6个属性,它们是数学中经常用到的常数E、以10为底的自然对数LN10、以2为底的自然对数LN2、3.14159的PI、1/2的平方根SQRT1-2,2的平方根为SQRT2。

主要方法:绝对值:abs(),弦余弦值:sin(),cos(),反正弦反余弦

:asin(), acos()

,正切反正切:tan(),atan(),四舍五入:round(),平方根:sqrt(),基于几方次的值:Pow(base,exponent)

var a = Math.sin(1);

document.write(a)

(4)String对象

一般利用String对象提供的函数来处理字符串。String对字符串的处理主要提供了下列方法。

charAt(idx):第一个字符位置是“0”,返回指定位置处的字符。

indexOf(Chr):返回指定子字符串的位置,从左到右,找不到返回–1。

lastIndexOf(chr):返回指定子字符串的位置,从右到左。找不到返回–1。

toLowerCase():将字符串中的字符全部转化成小写。

toUpperCase():将字符串中的字符全部转化成大写。

var str = "I am a boy, I like

programming!";

a = str.charAt(7);

b = str.indexOf("a");

c = str.lastIndexOf("a");

d = str.toUpperCase();

document.write(a +

"
");

document.write(b +

"
")

document.write(c +

"
")

document.write(d +

"
")

7.JavaScript的常用函数

JavaScript中的系统函数又称内部方法。它提供了与任何对象无关的系统函数,使用这些函数不需创建任何实例,可直接用。

(1)eval_r()函数

返回字符串表达式中的值:

var str = "1+2+3";

document.write(eval_r(str));

(2) unEscape (string)

返回字符串ASCI码

(3) escape(character)

返回字符的编码

(4)parseInt()

从一个字符串中提出一个整数,如果遇到字符串中除了数字以外的字符,parseInt()就停止转换,返回已有的结果。

(5)ParseFloat()

可以提取小数

var a =

parseInt("123China");

var b =

parseFloat("123.12China");

document.write (a +

"
");

document.write (b);

上机思考题:

JavaScript函数和其他函数区别的地方在哪里?

函数为程序设计人员提供了一个丰常方便的能力。通常在进行一个复杂的程序设计时,总是根据所要完成的功能,将程序划分为一些相对独立的部分,每部分编写一个函数。从而,使各部分充分独立,任务单一,程序清晰,易懂、易读、易维护。JavaScript函数可以封装那些在程序中可能要多次用到的模块。并可作为事件驱动的结果而调用的程序。从而实现一个函数把它与事件驱动相关联。这是与其它语言不一样的地方。

------童优素

2. 怎样才能确定JavaScript中函数的参数变量的个数?

在JavaScript中可通过arguments .Length来检查参数的个数。

Function function_Name(exp1,exp2,exp3,exp4)

3.如何引用onClick事件?举个例子?

当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。

举例:

单击事件

ONCLICK="alert('鼠标单击')">

在onClick等号后,可以使用自己编写的函数作为事件处理程序,也可以使用JavaScript中内部的函数。还可以直接使用JavaScript的代码等。例:

οnclick=alert("这是一个例子");

------李庆云

4.为什么说JavaScript是基于对象而不是面向对象的语言?

Javascript不是一个支持面向对象的语言,更加算不上一个开发平台,但是Javascript提供了一个非常强大的基于prototype的面向对象调用功能,你可以在你自己需要的地方使用他们

Jscript中内置了一些类,例如String、Array、Math等,用户可以直接从这些类实例化出对象,并使用其中的属性和方法。单凭这一点,不能说js符合面向对象语言的特征。一种面向对象的语言,应当具有封装,继承,多态等基本特性。Jscript并没有直接提供实现这些特性的方法,但是,也并非完全无法实现。

Js中的封装

一种面向对象的语言应当允许用户创建自定义类型,这一点js做到了,只是它的自定义类型不是用class限定,而是作为function,这个function的作用相当于其他语言中的构造函数。在自定义类型中,用户可以添加属性、方法。但是,js中并未显式提供public、private、protected等访问限定,也没有提供static之类的作用域限定。

Js中的继承

继承是面向对象语言中扩展已有类型的一种有效途径,js没有提供用于实现继承的extends关键字或者“:”操作符,但是,由于它是一种动态语言,可以在需要的时候添加属性和方法。

Js中的多态

多态能够让对象在运行时决定实际调用的方法体。由于js是一种动态语言,支持运行时绑定,讨论它的多态实际上并没有太大意义。Js不支持virtual关键字,而virtual关键字在现在的js里面也不会有明显用处。

JavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。虽然JavaScript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大JavaScript的应用范围,增强编写功能强大的Web文档。JavaScript不是一纯面向对象的语言,它设有提供面向对象语言的许多功能,因此JavaScript设计者之所以把它你“基于对象”而不是面向对象的语言,在JavaScript中提供了几个用于操作对象的语句和关键字及运算符。JavaScript为我们提供了一些非常有用的常用内部对象和方法。用户不需要用脚本来实现这些功能。这正是基于对象编程的真正目的。

------童优素

5.JavaScript可否引用原先不存在的对象?

不可以

引用对象的途径,一个对象要真正地被使用,可采用以下几种方式获得:

1.引用JavaScript内部对象;

2.由浏览器环境中提供;

3.创建新对象。

这就是说一个对象在被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错误信息。从上面中我们可以看出JavaScript引用对象可通过三种方式获取。要么创建新的对象,要么利用现存的对象。

------童优素

6.For…in

语句的优点是什么?可否用其他方法来实现该语句功能?例如下面一个例子显示数组中的内容:

Function showData(object)

for(var prop in object)

document.write(object[prop]);请考虑用其他方法来实现其功能输出。

该语句的优点就是无需知道对象中属性的个数即可进行操作。

For(对象属性名 in 已知对象名)

说明:该语句的功能是用于对已知对象的所有属性进行操作的控制循环。它是将一个已知对象的所有属性反复置给一个变量;而不是使用计数器来实现的。

举例:

var arr = new Array(3);

arr[0] = "Jack";

arr[1] = "Mike";

arr[2] = "Rose";

for(i in arr)

{

document.write("
第" + i + "个为:" + arr[i]);

}

可以用while()语句来实现该语句功能

实现如下:

Function showData(object)

x=0;

while (X<30)

{

document.write(object[i]);

x++;

}

该函数是通过数组下标顺序值,来访问每个对象的属性,使用这种方式首先必须知道数组的下标值,否则若超出范围,则就会发生错误。

------李庆云

7.为什么要用this关键字?

this是对当前的引用,在JavaScript由于对象的引用是多层次,多方位的,往往一个对象的引用又需要对另一个对象的引用,而另一个对象有可能又要引用另一个对象,这样有可能造成混乱,最后自己已不知道现在引用的那一个对象,为此JavaScript提供了一个用于将对象指定当前对象的语句this。

this是对当前的引用,JavaScript提供了一个用于将对象指定当前对象的语句this。这个等同于c++中的this功能一样。

举例:

function imgclick(oimg)

{

alert("图片名称是:" + oimg.name+"\r\n图片地址是:" + oimg.src

);

}

Edit_Commit.gif

ONCLICK="imgclick(this)">

------李庆云

8.将下列语句引用math内部对象中cos()的方法改写成with语句,体会其用法和优势?

document.write(Math.cos(35));

document.write(math.sin(80))

则:with(math)

document.write(cos(35));

document.write(cos(80));

------李庆云

9.

在JavaScript里面什么是静态对象和动态对象?分别怎么引用他们?如String,

Math和日期时间对象分别属于静态还是动态对象?

在JavaScript中对于对象属性与方法的引用,有两种情况:其一是说该对象是静态对象,即在引用该对象的属性或方法时不需要为它创建实例;而另一种对象则在引用它的对象或方法是必须为它创建一个实例,即该对象是动态对象。

string对象:内部静态性。

访问properties和methods时,可使用(.)运算符实现。

基本使用格式:objectName.prop/methods

串对象的属性

该对象只有一个属性,即length。它表明了字符串中的字符个数,包括所有符号。

math对象

功能:提供除加、减、乘、除以外的一引些自述运算。如对数,平方根等

静动性:静态对象

日期及时间对象

功能:提供一个有关日期和时间的对象。

静动性:动态性,即必须使用New运算符创建一个实例。

------童优素

上机练习题:

使用onLoad和onUnload函数编写一段代码实现:

当装入HTML文档时调用loadform()函数,弹出“这是一个自动装载例子!”的对话框,而退出该文档进入另一HTML文档时则首先调用unloadform()函数,弹出"这是一个卸载例子!"的对话框,确认后方可进入。

href="test.htm">调用

动态按钮:当鼠标移动到按钮上的时候,按钮就会凸起来。编写一段代码通过JavaScript的事件实现动态按纽。(提示:首先必须准备两张图片,当鼠标移上去的时候,自动切换成另一张图片就可以了)

function DoOver(oimg)

{

var

imgSRC;

imgSRC = 'Edit_' + oimg.name + '_Over.gif';

oimg.src =

'images/' + imgSRC;

}

function DoOut(oimg)

{

var

imgSRC;

imgSRC = 'Edit_' + oimg.name + '.gif';

oimg.src =

'images/' + imgSRC;

}

编写代码在屏幕上显示当前时间和当前日期

在字符串“I am a girl, I like

dancing!”的每个字符之间加上一个字符“#”,输出字符为:“I# #a#m#

#a# #girl#,# #I# #like#

#d#a#n#c#i#n#g#!”,并统计“#”的个数。

var str = "I am a boy, I like dog"

var iCount = 0;

for( i = 0; i < str.length; i++)

{

if(str.charAt(i) == "i")

{

iCount++;

}

}

document.write(iCount);

编写一段代码在文本框中输入姓名XXX后弹出欢迎XXX的字样!

Please enter your name:

onBlur="getname(this.value)" value="">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值