八、函数
函数:就是封装了一段可被重复调用执行的代码块,通过此代码块可以实现大量代码的重复使用。
通常情况下,JavaScript代码是自上而下执行的,不过函数体内部的代码则不是这样,如果仅对声明函数,其中的代码并不会执行,只有在调用函数时才会执行函数体内部的代码;
这里要注意的是JavaScript中的函数也是一个对象,使用typeof检查一个函数对象时,会返回function。
8.1 函数的使用
函数使用分为两步:声明函数,调用函数。
8.1.1 声明函数
function 函数名(){
//函数体
}
function声明函数的关键字,全部小写,JavaScript 对大小写敏感;
函数是做某件事情,函数名一般是动词;
函数不调用自己不执行,并且必须以与函数名称相同的大小写来调用函数。
8.1.2 调用函数
函数名();//通过调用函数名来执行函数体代码
调用的时候千万不要忘记添加小括号;
函数不调用自己不执行。
8.1.3 函数的封装
把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口。
案例:利用函数封装求1~100的和
//声明函数
function getSum(){
var sum = 0;
for (var i = 1;i < 100;i++){
sum += i;
}
console.log(sum);
}
//调用函数
getSum();//5050
8.2 函数的参数
8.2.1 形参和实参
function 函数名(形参1,形参2...){//在声明函数的小括号里面是形参(形式上的参数),形参是接受实参的,形参类似于一个变量
}
函数名(实参1,实参2...);//在函数调用的小括号里面是实参(实际的参数)
参数的作用:在函数内部某些值不能固定时,可以通过参数在调用函数时传递不同的值进去。
8.2.2 形参和实参的匹配问题
在执行过程中形参类似于一个不用声明的变量,用于接受实参;
函数的参数可有可无,个数不限;
形参默认值为undefined。
8.3 函数返回值
8.3.1 return语句
函数遇到return就把后面的结果最终的结果 返回给函数的调用者 函数名()=return
function sum(num1, num2) {
return num1 + num2;
}
console.log(sum(10, 20));
注意:在函数中return后的语句都不会执行,如果return语句后不跟任何值就相当于返回一个undefined,如果函数中不写return,则也会返回undefined,return后可以跟任意类型的值。
案例1:求两个数的最大值
function getMax(num1, num2){
//if (num1 > num2) {
// return num1;
// } else {
// return num2;
//}
return num1 > num2 ? num1: num2;
}
console.log(getMax(1,3));//3
console.log(getMax(11,3));//11
案例2:求数组中的最大值
function getArrMax(arr) {// arr 接受一个数组
var max = arr[0];
for (var i = 1; i <= arr.length; i++) {
if (arr[il > max) {
max = arr[il;
}
}
return max;
}
//getArrMax([5,2,99,101,67,77]); // 实参是一个数组送过去
// 在我们实际开发里面,我们经常用一个变量来接受 函数的返回结果 使用更简单
var re = getArrMax([5, 2,99,101 67, 77]);
console.log(re);//101
8.3.2 函数返回值注意事项
return可以终止函数(return后的代码不被执行)且只可以返回一个结果值;
如果想要同时返回多个值可以利用数组的形式;
如果函数没有return则返回的是undefined;
break,return,continue的区别