JavaScript函数

54 阅读1分钟

函数定义阶段:把代码装进 “盒子” 里面
函数调用阶段:把 “盒子” 里面的代码执行
函数定义阶段:
语法:
function fn() {
装在盒子里面的代码

}

var fn = function(){
装在盒子里面的代码

}
函数调用阶段:
语法:
函数名()
形参:一个特殊的变量
特殊:只能在函数内部使用
值:函数调用的时候,由实参确定
实参:给形参进行赋值
规则:按照从左到右的顺序依次赋值

利用函数求10的阶乘

// 定义一个函数
function fn() {
var total = 1
// 开始 : 10
var n = 10
// 结束 : 1
while (n >= 1) {
// 将每一个数字阶乘到 total 变量
total *= n
// 修改初始值
n--
}

// 输出阶乘结果
console.log(total)

  }
// 调用这个函数
fn()

函数的返回值
给函数调用添加一个结果
语法:function fn() {
装在盒子里面的代码

     return结果

}

递归函数
递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。当函数在一直递推,直到遇到墙后返回,这个墙就是结束条件。所以递归要有两个要素,结束条件与递推关系
function fn(n){

return n * fn(n-1);

}
一个函数调用了它自身,这种现象就称为递归
function fn(n){
if(n === 1) return 1;
return n * fn(n-1);
}
当 n 为 1 的时候, 到达折返点, 该 归 回来了

一个函数调用了自身,并设置了结束条件,这个函数才是一个正确的递归函数