# 函数
### 一、函数的概念
函数就是封装了一段可以被重复执行调用的代码块
**目的:让大量代码重复使用**
#### 1.声明函数
```javascript
function 函数名(){
//函数体
}
```
**注意:函数名一般是动词**
#### 2.调用函数
```javascript
函数名();
```
### 二、函数的参数
#### 1.形参和实参
``` javascript
function 函数名(形参1,形参2,...){}
函数名(实参1,实参2,...);
```
形参是形式上的参数,实参是实际上的参数。
形参是接受实参的,形参类似于一个变量。
举个例子!
```javascript
function eat(aru){
console.log(aru)
}
eat('番茄');
```
例子中,aru就是形参,番茄是实参。
#### 2.形参和实参个数不匹配的问题
若形参个数少于实参个数,则取到形参的个数。
如形参个数多于实参个数,则多余的形参定义为undefined。
接下来举一个形参多于实参的例子!
```javascript
function sum(num1,num2){
console.log(num1+num2);
}
sum(1);
```
输出结果为:NaN(Not a Number)
### 三、函数的返回值
#### 1.return语句
```javascript
function test(){
return 需要返回的结果;
}
```
test=return后面的结果
#### 2.return终止函数
return后面的代码不会被执行
return语句只能返回一个值,如果有多个值则返回最后一个值
例如:return 1,2,3;则返回值为3.
若函数没有return语句,则返回undefined。
### 四、arguments的使用
arguments是一个伪数组
arguments里面储存了所有传递过来的实参,只有函数才有arguments对象,而且是每个函数都内置好了这个arguments
**伪数组并不是真正意义上的数组**
*具有数组的length属性*
*按照缩印的方式存储*、
*它没有真正数组的一些方法*
### 五、函数的两种声明方式
#### 1.利用函数关键字自定义函数(命名函数)
(前面声明函数写过了)
#### 2.函数表达式(匿名函数)
```javascript
var fun=function(){};
fun();
```
**注意:fun是变量名,不是函数名!!!**