1、初识函数
1 .1函数的使用
函数的使用分为两步,声明函数和调用函数,声明函数的基本语法如下
function 函数名(){ //函数代码 } //在上述代码中 function 是声明函数的关键字,必须全部使用小写字母 //当函数 声明后,里面的代码不会执行,只有在调用函数是,里面的代码才会执行。调用函数的语法为'函数名()' //声明函数 function sayHellow(){ console.log('hellow'); } sayHellow(); //调用函数
2 .2什么是函数
当我们编写代码时,可能会出现许多相同的代码,或者功能类似的代码,这些代码可能要大量的重复使用。虽然 for 循环也能实现简单的循环使用,但是比较有局限性,此时我们可以使用 JavaScript 中的函数。
//求 1-100 的累加和 var sum = 0; for(var i = 1;i<=100;i++){ sum +=i; } console.log(sum); //求 10-50 的累加和 var sum = 0; for(var i=10;i<=50;i++){ sum +=i; } console.log(sum);
上面的两个功能代码非常相似,唯一的不同点在于 i 的起始值和结束值,此时利用函数,我们可以吧这种相似的代码封装起来,实现代码的重复使用。
function getSum(num1,num2){ var sum = 0; for(var i = num1;i<=num2;i++){ sum +=i; } console.log(sum); } getSum(1,100); getSum(10,50); //如上代码就很方便的实现了代码的重复使用
3 函数的参数
function 函数名(形参1,形参2,...){ //函数体代码 } 函数名(实参1,实参2,...);
一个函数的参数可以有多个,用逗号隔开,也可以没有参数
function cook(arg){ console.log(arg); } cook('potato'); //两个数的求和 function getSum(num1,num2){ console.log(num1+num2); } getSum(1,3); getSum(2,6);
4 函数参数的数量
函数的参数当中,形参和实参的数可以不相等
function getSum(num1,num2){ console.log(num1,num2); } getSum(1,2,3); //实参多余形参 此时多余的实参会被丢弃 getSum(1); //实参少于形参 多余的形参输出为 undefined
5 函数的返回值
当函数完成了具体的功能以后,可以根据函数的返回值来决定下一步要做的事。此时就需要通过函数的返回值来将函数的处理结果返回。
function 函数名(){ return 要返回的值; //利用 return 返回一个值给调用者 } function getResult(){ return 999; } //通过变量接收返回值 var result = getResult(); console.log(result); //直接将函数的返回值输出 console.log(getResult());
2 、函数返回值案例
2.1 利用函数求任意两个数的最大值
function getMAX(num1,num2){ if(num1<num2){ return num2; }else{ return num1; } } console.log(getMAX(9,2));
2.2 利用函数求任意一个数组中的最大值
function getArrMax(arr){ var max = arr[0]; for(var i=1;i<arr.length;i++){ if(arr[i]>max){ max = arr[i]; } } return max; } max = getArrMax([5,2,99,101,67,77]); console.log(max); //输出结果为 101
2.3 利用 return 提前终止函数
function getMax(num1,num2){ if (typeof num1!='number' || typeof num2!='number'){ return NaN; } return num1 > num2 ? num1:num2; //此处的 return 被终止 不会被执行 } console.log(getMax(3,'2'));
2.4 利用 return 返回数组
function fn(num1,num2){ return num1,num2; } console.log(fn(1,30)); //注意 return 只能返回一个值,即使中间用逗号隔开,也只能返回最后一个值
如果想要返回多个值可以用数组来实现,也就是将要返回的多个值写在数组中,作为整数来返回。示例代码如下
function getResult(num1,num2){ return [num1,num2,num1+num2,num2-num1,num1*num2]; } console.log(getResult(10,30)); //输出结果:[ 10, 30, 40, 20, 300 ]