JavaScript进阶 - 第5章 小程序,大作用(函数)

5-1什么是函数

函数的作用,可以写一次代码,然后反复地重用这个代码。

如:我们要完成多组数和的功能。

var sum;   
sum = 3+2;
alert(sum);
 
sum=7+8 ;
alert(sum); 
 
....  //不停重复两行代码

如果要实现8组数的和,就需要16行代码,实现的越多,代码行也就越多。所以我们可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省去重复输入大量代码的麻烦。

使用函数完成:

function add2(a,b){
sum = a + b;
 alert(sum);
} //  只需写一次就可以
 
add2(3,2);
add2(7,8);
....  //只需调用函数就可

5-2定义函数

如何定义一个函数呢?看看下面的格式:

function  函数名( )
{
     函数体;
}

function定义函数的关键字,“函数名”你为函数取的名字,“函数体”替换为完成特定功能的代码。

我们完成对两个数求和并显示结果的功能。并给函数起个有意义的名字:“add2”,代码如下:

<script type="text/javascript">
  function add2(){
    sum = 3 + 2;
    alert(sum);
  }
  ​add2();
</script>

结果: 

 

任务

补充右边编辑器第7行,编写一个函数,实现二个数的差,函数名为sub2。

1.定义函数使用function

2.function 后面是函数名

代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>定义函数</title>
 6 <script type="text/javascript">
 7    function  sub2()                     //定义函数
 8  {
 9    sub=5-2;
10    alert("5和2的差:"+sub);
11  }
12 </script>
13 </head>
14 <body>
15 <form>
16     <input type="button" value="点击我" onclick="sub2()" />
17 </form>
18 </body>
19 </html>
定义函数

5-3函数调用

函数定义好后,是不能自动执行的,需要调用它,直接在需要的位置写函数名。

第一种情况:在<script>标签内调用。

  <script type="text/javascript">
    function add2()
    {
         sum = 1 + 1;
         alert(sum);
    }
  add2();//调用函数,直接写函数名。
</SCRIPT>

第二种情况:在HTML文件中调用,如通过点击按钮后调用定义好的函数。

<html>
<head>
<script type="text/javascript">
   function add2()
   {
         sum = 5 + 6;
         alert(sum);
   }
</script>
</head>
<body>
<form>
<input type="button" value="click it" onclick="add2()">  //按钮,onclick点击事件,直接写函数名
</form>
</body>
</html>

注意:鼠标事件会在后面讲解。

任务

补充右边编辑器第15行,实现如下功能:

网页中有一按钮(名字"点点我"),当点击按钮后调用函数tcon(),弹出对话框"恭喜你学会函数调用了!"。

函数调用,在需要的位置直接写函数名。

代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>函数调用</title>
 6 <script type="text/javascript">
 7 function tcon()
 8   {
 9     alert("恭喜你学会函数调用了!");
10   }
11 </script>
12 </head>
13 <body>
14 <form>
15 <input type="button"  value="点点我" onclick="tcon()">  
16 </form>
17 </body>
18 </html>
函数调用

5-4有参数的函数

上节中add2()函数不能实现任意指定两数相加。其实,定义函数还可以如下格式:

function 函数名(参数1,参数2)
{
     函数代码
}

注意:参数可以多个,根据需要增减参数个数。参数之间用(逗号,)隔开。

按照这个格式,函数实现任意两个数的和应该写成:

function add2(x,y)
{
   sum = x + y;
   document.write(sum);
}

x和y则是函数的两个参数,调用函数的时候,我们可通过这两个参数把两个实际的加数传递给函数了。

例如,add2(3,4)会求3+4的和,add2(60,20)则会求出60和20的和。

任务

补充右边编辑器代码,实现如下功能:

1. 补充右边编辑器第7行代码,定义函数实现三个数的和,函数名为add3。

2. 补充右边编辑器第12、13行代码,计算5、8、3/7、1、4两组三个数的和。

?不会了怎么办

1.定义函数要有参数,这样就可以重复使用并传不同的值。

 add3(x,y,z) 

2.求不同数的和,在调用函数要记的传数值。

 add3(5,8,3);

 add3(7,1,4);

代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>函数传参</title>
 6 <script type="text/JavaScript">
 7    function add3(x,y,z)                
 8     {
 9       sum = x + y +z;
10       document.write(x+""+y+""+z+"和:"+sum+"<br/>");
11     }
12      add3(5,8,3); 
13      add3(7,1,4);
14 </script>
15 </head>
16 <body>
17 </body>
18 </html>
函数传参

 

5-5返回值的函数

思考:上一节函数中,通过"document.write"把结果输出来,如果想对函数的结果进行处理怎么办呢?

我们只要把"document.write(sum)"这行改成如下代码:

function add2(x,y)
{
   sum = x + y;
   return sum; //返回函数值,return后面的值叫做返回值。
}

还可以通过变量存储调用函数的返回值,代码如下:

result = add2(3,4);//语句执行后,result变量中的值为7。

注意:函数中参数和返回值不只是数字,还可以是字符串等其它类型。 

任务

补充右边编辑器代码,实现如下功能:

1. 定义函数实现两个数的积,函数名为app2,补充右边编辑器第10行代码,返回函数值。

2. 补充右边编辑器第12、13行代码,计算5、6/2、3两组两个数的积。分别保存在req1和req2变量中。

3. 补充右边编辑器第14行代码,计算req1和req2和的值,保存在变量sumq中。

1.函数返回值,使用return。

return sum;   

2. 返回值可以存储在变量中。

var req1=app2(5,6);

var req2=app2(2,3);

var sumq=req1+req2;

代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>返回值函数</title>
 6 <script type="text/javascript">
 7   function  app2(x,y)
 8   { var sum,x,y;
 9     sum = x * y;
10     return sum;
11   }
12  req1=app2(5,6);
13  req2=app2(2,3);
14  sumq=req1+req2;
15 document.write("req1的值:"+req1+"<br/>");
16 document.write("req2的值:"+req2+"<br/>");
17 document.write("req1的值:"+req1+""+"req2的值:"+req2+"的和:"+sumq);
18 </script>
19 </head>
20 <body>
21 </body>
22 </html>
返回值函数

编程练习

使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数。

任务

第一步: 编写代码完成一个函数的定义吧。

第二步: 我们来补充函数体中的控制语句,完成函数功能吧。

提示:再想一想,两个整数比较有三种情况,大于,等于或小于,所以我们需要控制语句判断(if...else if)。

第三步:  写好的函数,我们就可以任意调用函数了。通过函数调用实现两组数值中,返回较大值吧。

代码:

 1 <!DOCTYPE  HTML>
 2 <html >
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>函数</title>
 6 
 7 <script type="text/javascript">
 8 
 9 //定义函数
10 function size(x,y){
11     if(x>y){
12     return x;
13     }
14     else if(x<y){
15         return y;
16     }
17     else{
18         document.write("一样大")
19     }
20     }
21 
22 //函数体,判断两个整数比较的三种情况
23 a=size(5,4);
24 b=size(6,3);
25  
26 //调用函数,实现下面两组数中,返回就大值。
27   document.write(" 5 和 4 的较大值是:"+a+"<br>");
28   document.write(" 6 和 3 的较大值是:"+b ); 
29 </script>
30 </head>
31 <body>
32 </body>
33 </html>
函数

 

posted @ 2015-05-26 19:14  竹立荷塘  阅读(533)  评论(0编辑  收藏  举报