一,声明和调用函数
//声明函数
function 函数名() {
//函数体
}
//function 声明函数的关键字 全部小写,函数名一般是动词
//函数不调用自己不执行
//调用函数
函数名();
二,函数的参数
- 声明函数时小括号内为形参,调用函数时小括号内为实参(声形调实) ,形参类似于一个不用声明的变量,用于接受实参,形参的默认值为undefined
- 函数的参数可以有,也可以没有,个数不限
- 如果实参个数多于形参,只取到形参的个数,若实参个数小于形参,多的形参定义为undefined,结果为NaN
//声明函数
function 函数名(形参1,形参2,....) {
//函数体
}
//调用函数
函数名(实参1,实参2,...);
三,函数的返回值
- return除了返回值外还有终止函数的作用,return后面的代码不会被执行
- return只能返回一个值,返回结果为最后一个值如:return 1,2; 返回结果为2
- 若想用return返回多个值可以写成返回数组的形式,如:return [1,2];
- 如果函数没有return则返回undefined
function getSum(num1, num2) {
return num1 + num2;
}
//getSum(66,10) = 66+10
console.log(getSum(66, 10)); //76
三,arguments的使用
只有函数才有arguments对象,每个函数都内置好了这个arguments
function a() {
return arguments; // arguments里面存储了所有传递过来的实参
}
console.log(a(1, 2, 3, 9)); //[1,2,3,9]
console.log(a(66, 99)); //[66,99]
-------------------------------------------------------------------
function b() {
console.log(arguments); //[0,11,3,69]
console.log(arguments.length); //4
console.log(arguments[2]); //3
}
b(0, 11, 3, 69);
利用函数arguments求任意个数的最大值:
function getMax() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
console.log(getMax(4, 6, 9, 69)); //69
四,函数间可相互调用
//用户输入年份,输出对应2月份天数
function backDay() {
var year = prompt('请您输入年份:');
if (isRunYear(year)) { //调用isRunYear函数
alert('当前年份是闰年,2月份有29天');
} else {
alert('当前年份是平年,2月份有28天');
}
}
backDay(); //调用backDay函数
//判断是否是闰年的函数
function isRunYear(year) {
var flag = false;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
flag = true;
}
return flag;
}
五,函数的另一种声明方式
利用函数表达式声明函数(匿名函数:函数表达式声明的函数没有名字)
格式:var 变量名 = function() { 函数体 }
var fun = function(num1, num2) {
if (num1 > num2) {
console.log(num1);
} else {
console.log(num2);
}
}
fun(36, 99); //99