实验目的

1、熟悉JavaScript函数的定义。
2、掌握JavaScript函数的几种调用方法。
3、熟悉JavaScript函数库的定义和引用。
4、掌握JavaScript中几种特殊函数的定义和调用。
5、掌握JavaScript中模式消息对话框的3种内置函数。

实验内容与步骤

一、 函数库

在js文件中定义一些函数,之后在html文件中引用他们,就可以调用他们完成相应功能。例如:
my.js文件如下:

function PrintString(str){
   document.write(str)
}
function sum(num1,num2){
   document.write(num1+num2)
}

引用的HTML文件如下:

<script src="my.js"></script>
<script type="text/javascript">
PrintString("传递参数")
document.write(“<br/>”)
sum(1,2)
</script>

练习1:在js文件中定义sumAll(a, b),实现从a到b的累加;定义Fib(n)函数,计算出斐波那契数列的第n项。之后在html中引用他们,调用他们实现相应的功能。

二、构造函数

作用构造函数对一个新创建的对象进行初始化增加一些成员变量和方法

function Prince(name,age){
  this.gender="male";
  this.kind=true;
  this.rich=true;
  this.name=name;
  this.age=age;
}
var prince=new Prince("charming",25);
prince.kind;     //true

与普通函数相比,构造函数有以下明显特点:
1.用new关键字调用

var prince=new Prince("charming",25);

2.函数内部可以使用this关键字
在构造函数内部,this指向的是构造出的新对象。用this定义的变量或函数/方法,就是实例变量或实例函数/方法。需要用实例才能访问到,不能用类型名访问。如

prince.age;   //25
Prince.age;   //undefined

3.默认不用return返回值,返回this新对象
4.函数命名建议首字母大写,与普通函数区分开。
不是命名规范中的,但是建议这么写。

三、匿名函数(对象字面量)

匿名函数的语法和function语句非常相似,只不过它被用作表达式,而不是用作语句,而且也无须指定函数名。语法允许为其指定任意一个函数名,当写递归函数时可以调用它自己。匿名函数的作用是创建一块封闭区域,外面不能够访问里面的变量和方法。
定义匿名函数的语法格式如下:

var func=function([parameter 1,parameter 2,……]){ statements;};

parameter:可选,用于指定参数列表。当使用多个参数时,参数间使用逗号进行分隔。
statements:必选,是函数体,用于实现函数功能的语句。
注意:上述定义把一个函数复制给变量func,而这个函数是没有名字的,即匿名函数。

例如,当页面载入完成后,调用无参数的匿名函数,弹出一个提示对话框。代码如下:

window.onload=function(){
	 alert("页面载入完成");
}

例1:创建了一个对象obj1,它具有一个成员变量p以及一个成员方法alertP。这种写法不需要定义构造函数。

var obj1 = {
    p:”I’m in Object literal”,
    alertP:function(){
        alert(this.p);
    }
}

四、三种模式对话框

模式对话框,即用户必须先关闭该消息框然后才能继续进行操作。其相关函数有以下三种:
(1)alert()函数
作用:用于弹出一个警告消息对话框,该对话框包括一个“确定”按钮。
语法:alert(str);
参数str:是string类型的变量或字符串,指定消息对话框的内容,且该字符串不是 html格式。

<title>alert()函数</title>
<script type="text/javascript">
alert("欢迎!请按“确定”继续。");
</script>

(2)confirm()函数
作用:用于显示一个请求确认对话框,包含一个“确定”按钮和一个“取消”按钮。在程序中,可根据用户的选择,单击“确定”或“取消”按钮决定执行的操作。
语法:confirm(str); 参数同alert()的参数。
返回值:true 或 false。

<title>confirm()函数</title>
<script type="text/javascript">
function checkme(){
 if(confirm("是否确定删除数据?")==true) 
   alert("成功删除数据");
 else
   alert("没有删除数据");
  }
</script>

(3)prompt()函数
作用:用于显示提示消息的对话框,该对话框包含一个“确定”按钮、一个“取消”按钮和一个文本框。
语法:prompt( text, defaultText);
参数:text指定要在对话框中显示的纯文本,用户可在此字段输入一个答案来响应提示。defaultText指定默认的输入文本,作为默认响应提示在对话框中显示。如果没有defaultText参数,则默认文本为" "。
返回值:如果用户单击“确定”按钮,则prompt()函数返回输入字段当前显示的文本;如果用户单击“取消”按钮,则prompt()函数返回null。
例:提示输入姓名,只有一个参数text,第二个参数defaultText未定义此时,IE浏览器会显示默认响应文本“undifined”,火狐浏览器显示效果不同。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>prompt()函数</title>
<script type="text/javascript">
function input() {
  var MyStr = prompt("请输入您的姓名:");
    alert("您的姓名是: "+MyStr);
  }
</script>
</head>
<body>
<p><a href=# onclick="input()">录入姓名</a></p>
</body>
</html>

例2、提示输入姓名,有两个参数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>prompt()函数</title>
<script type="text/javascript">
function input() {
  var MyStr = prompt("请输入您的姓名:");
    alert("您的姓名是: "+MyStr);
  }
</script>
</head>
<body>
<p><a href=# onclick="input()">录入姓名</a></p>
</body>
</html>

练习4:运用function语句定义一个judge()函数(要求:综合运用所学的三种模式消息对话框函数),主要实现输入分数判定等级的功能,主要有:
(1)单击“点此进入判断”按钮弹出确认消息“是否确定判断分数?”,单击“是”,依次通过提示消息对话框“你的分数是多少?”输入成绩,最后弹出对应等级的相关信息。单击“否”,弹出“请稍后再判断!”。其中,100分以上,弹出“耍我?100分满!”;90分以上100分以下,弹出“90分以上!高手高手,佩服佩服!”;80分以上,弹出“80分以上,8错,8错!”;70分以上,弹出“70分以上,凑合,凑合!”;60分以上,弹出“勉强及格!”;其他,弹出“"恭喜你,又挂了!”