目录

  • JavaScript 函数
    • 函数概念
    • 函数的使用
      • 函数的使用
      • 函数的封装
    • 函数的参数
      • 形参和实参
      • 形参和实参个数不匹配问题
      • 1.return返回值
      • 2.return终止函数
      • 3.return只能返回一个值
      • 4.想要返回多个值时,可以返回成数组
      • 5.函数如果有return则返回return后面的值,没有则返回undefined
    • arguments的使用
    • 函数间的调用
    • 函数的两种声明方式

JavaScript 函数函数概念

函数:就是封装了一段可以被重复执行调用的代码块,目的就是让大量的代码重复使用

函数的使用函数的使用

分两步:声明函数和调用函数

//1.声明函数//function 函数名() {//函数体//}function sayHi(){console.log('hi~~');}//function 声明函数的关键字 全部小写//函数是做某件事情,函数名一般是动词 sayHi//2.调用函数sayHi();//调用函数的时候千万不要忘记加小括号//函数不调用,自己不执行

函数的封装

函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口

函数的参数形参和实参

//function 函数名(形参1,形参2){// 在声明函数的小括号里面是 形参 (形式上的参数)//}//函数名(实参1,实参2);// 在函数调用的小括号里面是实参(实际的函数)function cook(aru){// 形参是接受实参的 aru = '西红柿炒鸡蛋' 形参类似于一个变量console.log(aru);}cook('西红柿炒鸡蛋');cook('小鸡炖蘑菇');//函数的参数可以有,也可以没有,个数不限

形参和实参个数不匹配问题## 函数的返回值1.return返回值

//function 函数名(){//return 需要返回的结果;//}//函数名();function getMax(num1, num2){            if(num1 > num2){                return num1;            }else{                return num2;            }        }        console.log(getMax(9, 2));

2.return终止函数

function getSum(num1, num2) {return num1 + num2;// return 后面的代码不会被执行alert('我是不会被执行的哦!');}consolse.log(getSum(1,2));

3.return只能返回一个值

function fn(num1, num2){return num1, num2;// 返回的结果是最后一个值}console.log(fn(1,2));

4.想要返回多个值时,可以返回成数组

//求任意两个数加减乘除结果function getResult(num1, num2){return[num1 + num2, num1 - num2, num1 * num2, num1 / num2 ];}var re = getResult(1,2);//返回的是一个数组console.log(re);

5.函数如果有return则返回return后面的值,没有则返回undefined

function fun1(){return 666;}console.log(fun1());// 返回666function fun2 (){}console.log(fun2());//函数返回结果是undefined

arguments的使用

当不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。
arguments的使用:只有函数才有arguments对象,而且每个函数都内置好了这个arguments
arguments展示形式是一个伪数组,因此可以进行遍历。伪数组特点:

  • 具有length属性
  • 按索引方式存储数据
  • 不具有数组的push,pop等方法
function fn(){console.log(arguments);}fn(1,2,3);
//利用函数求任意个数的值function getMax(){var max = arguments[0];for(var i = 1; i  max){max = arguments[i];}}return max;}console.log(getMax(1,2,3));console.log(getMax(11,222,34,999));console.log(getMax(100,79,34,563,12,87));//3//999///563

函数间的调用

//函数是可以相互调用的function fn1(){console.log(11);fn2;// 在fn1 函数里面调用了fn2 函数}fn1();function fn2(){console.log(22);}// 11  22
//用户输入年份,输出当前年份2月份的天数function backDay(){var year = prompt('请输入年份:');if(isRunYear(year)){//调用函数需要加小括号alert('当前年份是闰年2月份有29天');}else{alert('当前年份是平年2月份有28天');}}backDay(2000);//利用函数判断闰年function isRunYear(nianfen){//如果是闰年我们返回true,否则返回 falsevar flag = false;if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){flag = true;}return flag;}

函数的两种声明方式

1.利用函数关键字自定义函数(命名函数)

function fn(){}fn();

2.函数表达式(匿名函数)

//var 变量名 = function(){};var fun = funcction(aru){console.log('我是函数表达式');console.log(aru;)}fun('你好啊');//1.fun是变量名,不是函数名//2.函数表达式声明方式跟声明变量差不多,只不过变量里面存的是值,而函数表达式里面存的是函数//3.函数表达式也可以进行传递参数