一.函数声明

格式:function 函数名称(){};

二.函数调用

函数是不会自己执行的,需要调用。调用方法:函数名称();

  1. // 函数
  2. function demo(){
  3. alert(123);
  4. }
  5. // 调用函数
  6. demo();

三.函数参数

1.function 函数名称(形参1,形参2,形参3…..){};
2.调用函数时括号里的值为实参,例:函数名称(实参1,实参2,实参3);

  1. //函数参数
  2. function demo(str,num,word){
  3. alert(str+','+num+','+word);
  4. };
  5. // 传入实参
  6. demo(3,4,5);

通常情况下,函数里的实参与函数调用里的形参是一一对应的,上述案例中函数本身定义了三个形参,分别为str,num和word。与之相对应的调用方法里也传入了三个值分别为3,4,5。此时alert输出在页面中的值是3,4,5。

  1. // 利用函数求任意两个数之间的和
  2. function getSum(start,end){
  3. var sum = 0;
  4. for(var i=start; i<=end; i++){
  5. sum+=i;
  6. }
  7. console.log(sum);
  8. }
  9. getSum(1,100);

四.arguments的应用

概念:arguments是一个只关注实参的对象,是函数所独有的。它也是一个伪数组。
伪数组并不是真正意义上的数组。它具有数组的length属性;按照索引的方式进行存储;但是它没有真正数组的一些方法,例如pop(),push()等等。

  1. // arguments应用
  2. function fn(){
  3. var total = 0;
  4. for(var i=0; i<arguments.length; i++){
  5. total += arguments[i];
  6. }
  7. alert(total);
  8. }
  9. fn(3,4,5,6,7);//最终求值25
  1. // 利用arguments求任意个数的最大值
  2. function getMax(){
  3. var max = 0;
  4. for(var i=0; i<=arguments.length; i++){
  5. if(arguments[i]>max){
  6. max = arguments[i];
  7. }
  8. }
  9. return max;
  10. }
  11. console.log(getMax(19,112,389,56,18,123));

五.return的使用

概念:return不会在页面输出对应结果,可以调用alert、document.write、console.log等方法输出结果

  1. // return的使用
  2. function num(){
  3. var total = 0;
  4. for(var i=0; i<arguments.length; i++){
  5. total += arguments[i];
  6. };
  7. return total;
  8. }
  9. document.write(num(45,55,65));
  1. // 利用函数求数组中的最大值
  2. function getArrMax(arr){
  3. var max = 0;
  4. for(var i=1;i<=arr.length;i++){
  5. if(arr[i]>max){
  6. max=arr[i];
  7. }
  8. }
  9. return max;
  10. }
  11. var re = getArrMax([5,2,99,101,67,77]);
  12. console.log(re);

六.匿名函数

格式:function(){};
匿名函数没有名称,所以无法直接调用。需要转换为函数表达式,再调用执行

  1. // 匿名函数调用
  2. var fns = function(){
  3. alert("Hello");
  4. }
  5. fns();


函数声明和函数表达式的区别**
函数声明是不看调用顺序的,调用方法无论写在函数之前或之后都是可以正常执行的
函数表达式必须要看调用顺序,调用方法必须写在函数之后,自上而下执行,否则不会执行并且报错

立即执行函数
格式:
(function(形参){
函数体
})(实参);

  1. // 匿名函数的自我执行
  2. (function(str1,str2){
  3. alert(str1);
  4. })("hello","world");

七.函数综合案例

  1. //依据用户输入的年份,利用函数相互调用,输出2月份的天数
  2. function backDay(){
  3. var year = prompt('请输入年份');
  4. if(isRunYear(year)){
  5. alert('闰年二月份为29天');
  6. }else{
  7. alert('平年二月份为28天');
  8. }
  9. }
  10. backDay();
  11. function isRunYear(year){
  12. var flag = false;
  13. if(year%4 == 0 && year%100 != 0 || year%400 == 0){
  14. flag = true
  15. }
  16. return flag
  17. }