一、函数表达式:
将定义的函数赋给一个变量,通过变量完成函数的调用和参数传递(即函数是匿名的)
1、定义
var / let / const 变量名 = function(【参数】){
函数体语句
}
2、调用
变量名(【参数】)
3、代码示例
let min = function(val1,val2){
if(val1 < val2){
return val1
}else{
return val2
}
}
let t = min(12,25)
console.log('最小数:',t)
二、函数的递归调用
1、递归调用:
函数自己调用自己(即在函数的函数体语句中调用自己)
2、递归算法:
(1)用递归方式解决问题的前提
a、问题可以进行分解,分解得到的新问题的解法与原问题的解法相同
eg: 8! --> 8* 7! --->7 6!-->.......2!-->2 * 1!
b、问题的分解过程必须有明确的结束条件
(2)递归的过程
a、自上而下分解问题:得到最简单的问题的解
b、自下而上回溯得到原问题的解
(3)代码实现:
//用递归函数计算 n!
function fun(n){
//1.明确递归结束的条件
if(n==1){
return 1
}else{
//2.继续分解n
return n * fun(n-1) //函数自己调用自己:在调用过程分解问题
}
}
let m = fun(5)
console.log('5!=',m)
示例:定义递归函数,计算1+2+3+...100的值
//定义递归函数,计算1+2+3+...+100
function fun(n){
//1.明确递归结束的条件
if(n==1){
return 1
}else{
//2.继续分解n
return n + fun(n-1) //函数自己调用自己:在调用过程分解问题
}
}
let sum = fun(100)
console.log(sum)