1. 函数的定义
函数的定义有两种形式
- 1) 第一种是命名函数表达式, 如下所示
function name(para){
//TODO...
}
- 2) 第二种是匿名函数表达式, 如下所示
这种形式其实是一种表达式, 函数本身变成值
是忽略函数名字的, 是一种匿名的形式
var name = function(para){
//TODO...
}
2. 函数的组成和参数
- 函数的组成包括了函数的名字, 参数 ( 形参, 实参 )
- 定义函数时, 参数表内的参数不需要加 var, 直接写即可, 如下
function test(a,b){
//TODO...
}
-
JS 中的函数天生不定参, 即实参可以比形参多,
传递实参的数量比形参数量多不会出错, 会自动忽略多余传递的值
传递实参数量比形参数量少, 则会让没有接收到参数的形参的值为 undefined
-
JS 函数中都会隐式生成一个 arguments[ ] 即实参表,
不论传递多少个实参, 都会先将其放到函数的参数表中存放,
所以, 在实参比形参的数量多的情况下,
可以通过调用 arguments[ ] 数组来取出剩余的实参.
如下所示:
-
函数的 length 属性是形参表的长度,
如下所示:
-
形参表中的形参和实参表 arguments[ ] 中的实参对应位是映射关系,
一个形参若是改变, 那么它在实参表 arguments[ ] 中所对应的实参也会被改变,
但实际上它们并不是存放在同一地址, 它们只是通过系统的规则来进行映射的.
如下所示:
- 若实参传递的数量比形参表数量少, 没接收到值的形参会被定义为 undefined
实参表只用实际传递的实参与形参表进行映射
即如果实参有两个, 参数表内有三个形参,
实参表只会与参数表前两个参数进行映射, 剩余的均定义为 undefined
- 返回值
return 终止函数并返回值, 不写返回值则返回 undefined