目录
1.函数基础
1.1 什么是函数?
函数为封装一段可重复执行程序的代码块。
1.2 函数的结构
function 函数名(形参){//函数名一般是自定义,最好用动词表示,不要用中文缩写
函数体;
}
函数名(实参);//调用函数
或者:
var 函数名 = function(形参){//函数名一般是自定义,最好用动词表示,不要用中文缩写
函数体;
}
函数名(实参);//调用函数
1.3 形参和实参
形参可以有很多个,它没有实际意义,一般泛指一类东西,实参则是某一类东西中具体的某一个。
在js中,形参和实参的数量可以不匹配(Java中会报错),若实参的数量比形参多,那么多出来的实参数据不会显示,如果实参的数据比形参少,那么输出的结果中会在相应位置显示undefined。
1.4 arguments
如果在写函数时并不能确定形参的数量,可以用arguments代替,它可以存储所有不确定的实参,在所有的函数中都默认存在。
1.5 return
return是函数的返回值,它只能返回一个值或一组值,它后面可接语句也可接某个变量。出现return即代表终止函数的执行,函数中后续的代码将不会继续执行,因此它必须写在最末尾。
怎么理解上述基础内容呢?
用群发消息的实例来说,现在你需要发送一条消息给你的同学(消息内容相同),那你不可能一个一个去发,多浪费时间。那么只要先找到需要收消息的人,把他们集合到一起再发消息,是不是简单的多。
那么这个群发消息这个动作就是一个函数名,需要发消息的人就是形参,注意,这里指的一类人,不是某个,你发出去的消息就是函数体。至此,函数基本就构造好了,那么现在只要找到接受消息的具体的人就可以了,而这个人就是函数的实参。
接下来用几个实例检验检验学习成果。
2.实例:
2.1 利用函数求两组数各自的最大值
如果还想查找其他数组中的最大值,只需要将调用函数里的内容换掉就行了,比单独写两串差不多的代码好了不知道多少。
2.2 实现求某年二月份的天数
上述实例源码:
// 1 利用函数求两组数各自的最大值
/* var arr = [];
function getMax(arr) {
var max = arr[i];
for (var i = 0; i < arr.length; i++) {
if (arr[i] < arr[i + 1]) {
max = arr[i + 1];
}
}
return max;//一定不能少哦!!!
}
console.log(getMax([1, 6, 85, 64]));
console.log(getMax([8, 6, 25, 64, 55])); */
// 2 实现求某年二月份的天数
/* var year;
function getDay(year) {
var day = 28;
if (year % 400 == 0 || year % 100 != 0 && year % 4 == 0) {
day = 29;
}
return alert('你查询的年份' + year + '二月份有' + day + "天。");
}
getDay(2000);
getDay(2100); */
var year;
var getDay = function (year) {
var day = 28;
if (year % 400 == 0 || year % 100 != 0 && year % 4 == 0) {
day = 29;
}
return alert('你查询的年份' + year + '二月份有' + day + "天。");
}
getDay(2000);
getDay(2100);
3.补充:形参实参个数不匹配情况说明
为什么第二种情况的和只有2500啊?因为我们在写函数的时候没写第三个形参啊!所以就算你输入实参的时候多写了那也没用。它只是不报错,不代表它就有资格参与计算了。
为什么第三种情况的和是NaN(非数字型)啊?因为我们写了第三个形参,而它没有写第三个实参,所以自动匹配了undefined作为第三个实参,那数字+undefined的结果可不就是NaN嘛!
本视频中所有知识点参考自B站黑马程序员视频: