JavaScript之 ------ 函数(一般函数、动态函数、匿名函数)
来源:互联网 发布:遗传算法过程 编辑:程序博客网 时间:2024/05/17 17:58
函数
一、一般函数
1、格式:
function 函数名(形式参数...)
{
执行语句;
return 返回值;
}
函数是多条执行语句的封装体,只有被调用才会被运行。
注意:调用有参数的函数,但没有给其传值,函数一样可以运行,或者调用没有参数的函数,给其传值,该函数也一样运行。
说的简单点:只要写了函数名后面跟了一对小括号,该函数就会运行。
2、函数虽然定义时是声明成两个参数,但调用时却是可以传入任意个
例:
<span style="font-size:14px;">function show(x,y){ alert(x+":"+y); }</span>show(4,8); 结果:4:8
show(4);结果:4:undefined
show(); 结果:undefined:undefined
show(4,8,89); 结果:4:8
综上的例子,Js当中的函数是不存在重载的。如果有,一定就通配所有的了。
3、每个函数中,存在一个 默认的数组arguments ,里面存储着本次调用时传入的所有实参
<span style="font-size:14px;">function show2(x,y){ for(var i=0; i<arguments.length;i++){ document.write(arguments[i]+" "); } }show2(1,2,3,45);</span>结果:1 2 3 45
4、函数在调用时的其他写法
<span style="font-size:14px;"><script type="text/javascript"> function getSum(){ return 100; } var sum = getSum(); // alert(sum); //结果:100 var sum2 = getSum; //相当于java当中的 引用捆绑 //alert(getSum); //结果:getSum.toString() // alert(sum2); //结果:sum2.toString(),也就是getSum.toString() //alert(sum2()); //等价于调用:getSum() function show2(){ alert("kkkl"); } alert( show2() ); //先弹出“kkkl”,再弹出“undefined”。因为里面的函数没有return值,而外面的函数要用变量去接,结果相当于变量没赋值就输出 </script></span>
二、动态函数
利用Js当中内置的对象Function来构造一个函数,构造方法中的第1个参数是“形参”,第2个参数是“函数体”。
该思想类似于Java当中的类反射。我们平时写函数时通常不用,但关键的地方一写,整个程序的功能会变得很活。
<span style="font-size:14px;">var add = new Function("x,y", "var sum; sum=x+y;return sum;");var s = add(100,39);alert("s="+s);</span>
三、匿名函数
格式:function(){...}
例:
var demo = function(){...}demo();
通常在定义事件属性的行为时较为常用。
例:
function test(){alert(“load ok”);}window.onload = test;
可以写成匿名函数的形式:
window.onload = function(){alert(“load ok”);}
匿名函数就是一种简写格式。
四、函数调用
function.js
//1 取最大值:输出给定数组当中值最大的元素 //函数定义 function getMax(arr){ var max=0;//记下标 for(var x=1; x<arr.length; x++){ if(arr[x]>arr[max]){ max = x; } } return arr[max]; } //2 数组排序 //函数定义 function sortArray(arr){ for(var x=0; x<arr.length-1; x++){ for(var y=x+1; y<arr.length; y++){ if(arr[x]>arr[y]){ swap(arr,x,y); } } } } //辅助函数,用于交换数组中的两个元素 function swap(arr,x,y){ var temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } //3 模拟Java当中的System.out.println() function println(str){ document.write( str +"<br>"); } //4 在数组当中查找元素(若存在则返回该元素的位置,否则返回-1) function searchElement(arr,key){ for(var x=0; x<arr.length; x++){ if(arr[x]==key){ return x; } } return -1; } //5 二分查找 function binarySearch(arr,key){ var max,min,mid; min=0; max=arr.length-1; while(min<=max){ mid=(max+min)>>1; if(key>arr[mid]){ min=mid+1; }else if(key<arr[mid]){ max=mid-1; }else{ return mid; } } return -1; } //6 数组反转 function reverseArray(arr){ for(var start=0,end=arr.length-1; start<end; start++,end--){ swap(arr,start,end); } }调用:
<!DOCTYPE html><html> <head> </head> <body> <script type="text/javascript" src="functions.js"> </script> <script type="text/javascript"> //1 函数调用 var arr=[133,-22,33,43,1211]; var mValue = getMax(arr); //alert("mValue="+ mValue); //2函数调用 document.write("排序前:"+arr +"<br>"); // println(arr); sortArray(arr); document.write("排序后:"+arr); //3 函数调用 println(""); println(arr); //4 函数调用 var a=searchElement(arr,133); //alert(a); //5 函数调用 var b=binarySearch(arr,-2); //alert(b); //6 函数调用 reverseArray(arr); println(arr); </script> </body></html>
1 0
- JavaScript之 ------ 函数(一般函数、动态函数、匿名函数)
- JavaScript网页编程之------函数(一般函数、动态函数、匿名函数)
- JavaScript动态函数,匿名函数
- JavaScript中(动态函数,匿名函数)函数
- Javascript之匿名函数
- Javascript之匿名函数
- JavaScript匿名函数,动态函数,可变参数函数
- JavaScript学习之 匿名函数
- Javascript的匿名函数
- Javascript匿名函数
- JavaScript中匿名函数
- javascript匿名函数
- Javascript的匿名函数
- javascript匿名函数
- Javascript的匿名函数
- Javascript的匿名函数
- Javascript的匿名函数
- Javascript的匿名函数
- android 开源框架Universal-Image-Loader解析
- Maven内置隐式变量
- SSIS中的容器和数据流—简单介绍
- MUI-badge数字角标的基本使用
- 高速缓存Cache
- JavaScript之 ------ 函数(一般函数、动态函数、匿名函数)
- leetcode Word Search II
- Tabris.js 介绍与学习<2>
- Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be
- hdoj 1598 find the most comfortable road 【并查集+贪心】
- android 二维码扫描(zxing使用小结)
- org.apache.hadoop.hdfs.protocol.UnregisteredDatanodeException
- POJ 1703 Find them, Catch them(带权并查集)
- hdoj 4937 Lucky Number 【思维题】