Javascript学习总结-函数-(四)

来源:互联网 发布:mac ps 菜单栏不见了 编辑:程序博客网 时间:2024/03/29 20:09
2.7.     JavaScript函数基础

函数主要用来封装具体的功能代码。

函数是由这样的方式进行声明的:关键字 function、函数名、一组参数,以及置于括号中的待执行代码。

注意:函数的形参是不用声明使用的。

函数的基本语法是这样的:

 

function functionName(arg0, arg1, ... argN) {  statements}

  

例如:

 

function sayHi(sName, sMessage) {  alert("Hello " + sName + sMessage);}

  

调用函数?

函数可以通过其名字加上括号中的参数进行调用,如果有多个参数。

如果您想调用上例中的那个函数,可以使用如下的代码:

sayHi("David", " Nice to meet you!")

调用上面的函数 sayHi() 会生成一个警告窗口。

函数的返回值

没有返回值类型,如果一个函数需要返回值直接使用return即可.

该函数只需要使用 return 运算符后跟要返回的值即可。

 

function sum(iNum1, iNum2) {  return iNum1 + iNum2;}

  

注释:如果函数无明确的返回值,或调用了没有参数的 return 语句,那么它真正返回的值是 undefined。

-----------------------------------------------------------------

函数格式

    Function 函数名(参数列表){

    代码;

    return 返回值; //return 不是必须的.

}

    示例:

     

  function foo() {           alert("test");       }       function foo2( a ){           alert(a);           return; // 没有返回值,表示方法执行完了,后面如果有代码就不会执行了       }       function foo3( a, b ){           alert(a + b);       }       function foo4( a, b ){           return a + b;       }

 注意事项:

1.不需要类型,只写形参的名称就可以了。

2声明时不需要指定返回值类型;return可以有,也可以没有。

3.  javascript中的函数没有重载的形式,后定义的函数会直接覆盖前面 的函数。

4. 一个函数可以接收任意个 参数。 

参数:

JS的函数都是类似于Java中可变参数的。

在函数中可以直接使用arguments变量,arguments是一个数组,表示所有传递过来的参数。

在声明函数时,定义的形参就对应arguments数组中相应位置的参数值,写形参只是用着方便一点。

    参数示例

       定义:

           function foo( a, b, c ){              ...           }

       调用: 

         

  foo()           foo( 1, 2 )           foo( 1, 2, 3 )           foo( 1, 3, 5, 7, 9 )           foo( "aa", null, "cc" )

    没有重载

       当同一个名称的函数定义多次时,最终使用的是最后一个的定义。没有重载!

       例:

           function sum(){ alert("11"); }           function sum(a,b){ alert("22"); }           调用时写sum(1,2),结果还是显示“22”。

  

总结:

特点:

       1、使用function关键字定义函数。

       2、没有任何的返回值类型。

       3、函数的定义优先执行,与顺序无关。

       4、可以通过函数名赋值函数,函数变量的类型是function对象。

       5、参数列表不能有var关键字。

       6、函数的参数列表在具体调用的时候实参个数可以和形参个数不同。

       7、JavaScript函数天然的支持可变参数。

       8、同名的函数最后声明会覆盖前面以声明。Javascript中没有函数重载。

案例:体验JavaScript

    定义一个输入框输入的月份,然后输出本月对应的天数。

<html>    <head>       <title>学习JavaScript</title>    </head>    <body>       月份:       <input type="text" id="month">       <input type="button" value="显示天数" onclick="foo()">       <!--       31天:1,3,5,7,8,10,12       30天:4,6,9,11       28天:2       -->       <script type="text/javascript">           function foo(){              var monthValue = document.getElementById("month").value;              // 如果是非数字,则不再继续执行              if( isNaN(monthValue) ){                  alert("请输入正确的月份!");                  return;              }              // 转为数字              monthValue = parseInt(monthValue);              // 判断范围              if( monthValue < 1 || monthValue > 12){                  alert("请输入正确的月份(1--12)!");                  return;              }              // 根据月份显示天数              switch(monthValue){ // 这时不会自动转换类型,所以先转型                  case 2:                     alert("28天");                     break;                  case 4:                  case 6:                  case 9:                  case 11:                     alert("30天");                     break;                  default:                     alert("31天");                     break;              }           }       </script>    </body></html>
0 0