一.函数声明
格式:function 函数名称(){};
二.函数调用
函数是不会自己执行的,需要调用。调用方法:函数名称();
// 函数function demo(){alert(123);}// 调用函数demo();
三.函数参数
1.function 函数名称(形参1,形参2,形参3…..){};
2.调用函数时括号里的值为实参,例:函数名称(实参1,实参2,实参3);
//函数参数function demo(str,num,word){alert(str+','+num+','+word);};// 传入实参demo(3,4,5);
通常情况下,函数里的实参与函数调用里的形参是一一对应的,上述案例中函数本身定义了三个形参,分别为str,num和word。与之相对应的调用方法里也传入了三个值分别为3,4,5。此时alert输出在页面中的值是3,4,5。
// 利用函数求任意两个数之间的和function getSum(start,end){var sum = 0;for(var i=start; i<=end; i++){sum+=i;}console.log(sum);}getSum(1,100);
四.arguments的应用
概念:arguments是一个只关注实参的对象,是函数所独有的。它也是一个伪数组。
伪数组并不是真正意义上的数组。它具有数组的length属性;按照索引的方式进行存储;但是它没有真正数组的一些方法,例如pop(),push()等等。
// arguments应用function fn(){var total = 0;for(var i=0; i<arguments.length; i++){total += arguments[i];}alert(total);}fn(3,4,5,6,7);//最终求值25
// 利用arguments求任意个数的最大值function getMax(){var max = 0;for(var i=0; i<=arguments.length; i++){if(arguments[i]>max){max = arguments[i];}}return max;}console.log(getMax(19,112,389,56,18,123));
五.return的使用
概念:return不会在页面输出对应结果,可以调用alert、document.write、console.log等方法输出结果
// return的使用function num(){var total = 0;for(var i=0; i<arguments.length; i++){total += arguments[i];};return total;}document.write(num(45,55,65));
// 利用函数求数组中的最大值function getArrMax(arr){var max = 0;for(var i=1;i<=arr.length;i++){if(arr[i]>max){max=arr[i];}}return max;}var re = getArrMax([5,2,99,101,67,77]);console.log(re);
六.匿名函数
格式:function(){};
匿名函数没有名称,所以无法直接调用。需要转换为函数表达式,再调用执行
// 匿名函数调用var fns = function(){alert("Hello");}fns();
函数声明和函数表达式的区别**
函数声明是不看调用顺序的,调用方法无论写在函数之前或之后都是可以正常执行的
函数表达式必须要看调用顺序,调用方法必须写在函数之后,自上而下执行,否则不会执行并且报错
立即执行函数
格式:
(function(形参){
函数体
})(实参);
// 匿名函数的自我执行(function(str1,str2){alert(str1);})("hello","world");
七.函数综合案例
//依据用户输入的年份,利用函数相互调用,输出2月份的天数function backDay(){var year = prompt('请输入年份');if(isRunYear(year)){alert('闰年二月份为29天');}else{alert('平年二月份为28天');}}backDay();function isRunYear(year){var flag = false;if(year%4 == 0 && year%100 != 0 || year%400 == 0){flag = true}return flag}
