标签:
函数主要用来封装具体的功能代码。
函数是由这样的方式进行声明的:关键字 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>
标签:
原文地址:http://www.cnblogs.com/cxspace/p/5770606.html