■ 关于关于函数
有些代码需要大量重复使用,将这些需要重复执行的代码封装在一起,就是函数
函数:就是封装了一段可被重复调用执行的代码块,通过此代码可以实现大量代码的复用
■ 函数的使用
函数的声明和调用
方式1
//函数声明
function 函数名(){
//函数体
};
//函数调用
函数名(); //不要忘记()
方式2
函数表达式(匿名函数)
//函数声明
var fun = function(arg){ //fun是变量名,不是函数名
//函数体
};
//函数调用
fun('参数'); //通过变量名调用
注:
function是声明函数的关键字,小写
函数是做某件事,函数名一般是动词
函数不调用,自己就不会被执行
函数表达式声明方式跟声明变量差不多,只不过变量里存的是值,而函数表达式里存的是函数
函数表达式也可以传递参数
■ 函数的参数
函数的参数可以有,也可以没有,个数不限
参数包含形参和实参
实参
函数调用的括号里的是实参
形参
函数声明的括号里的是形参,形参是接收实参的,默认值为undefined
多个参数之间用逗号分隔
function 函数名(形参1,形参2...){
//函数体
}
函数名(实参1,实参2...);
形参和实参个数不匹配的问题
实参个数多于形参,会取到形参的数
实参个数小于形参,多余的形参定义为undefined
建议尽量的让形参和实参的个数相匹配,因为如果不匹配,最终的结果不可预计
function getSum(num1,num2) {
console.log(num + num2);
}
getSum(1,2); //输出:3
getSum(1,2,3); //输出:3
getSum(1); //输出:NaN
□ arguments
当不确定多少参数传递过来时,可以用arguments来获取
arguments是当前函数的一个内置对象,所有函数都内置了一个arguments对象
arguments对象包含了所有传递过来的实参
function fn() {
console.log(arguments); //输出:[1,2,30]
console.log(arguments.length); //输出:3
console.log(arguments[2]); //输出:30
}
fn(1,2,30);
注:
arguments展示形式是一个伪数组,因此可以进行遍历
伪数组并不是真正意义的数组,它具有以下特点:
▶ 具有length属性
▶ 按索引方式存储数据
▶ 不具有数组的pop,push等方法
■ 函数的返回值
通过return关键字返回函数值
return会终止函数,return后面的代码不会被执行
如果没有return,返回undefined
函数都是有返回值的,有return则返回return后面的值,没有return则返回undefined
return只能返回一个值,如果return后有多个值,则只返回最后一个值
return num1,num2; //只返回num2,若想返回多个值,可以将多个值放入数组并返回