域名备案网站建设方案书,个人网站备案要什么,常德住房和城乡建设局网站,北京做机柜空调的网站前面讲过#xff0c;定义函数的方式有两种#xff1a;一种是函数声明#xff0c;另一种是函数表达式。函数声明#xff1a; 123function functionName(arg0,arg1,arg2){ //函数体 }关于函数声明,一个重要的特征就是函数声明提升#xff0c;意思就是在执行代码之前会先读取…前面讲过定义函数的方式有两种一种是函数声明另一种是函数表达式。函数声明 123function functionName(arg0,arg1,arg2){ //函数体 }关于函数声明,一个重要的特征就是函数声明提升意思就是在执行代码之前会先读取函数声明。这就意味着可以把函数声明放到调用它的语句之后。函数表达式123var functionNamefunction(arg0,arg1,arg2){ //函数体 } //最常用的形式函数表达式会先创建一个匿名函数在将这个匿名函数赋值给某一变量。能够创建匿名函数在赋值给变量也能把匿名函数作为其他函数的返回值返回。1.递归递归函数是在一个函数通过名字调用自身的情况下构成的。下面是一个经典的递归阶乘的函数。1234567891011function factorial(num){ if(num1){ return 1; }else{ return num*factorial(num-1); } } var anotherFactorialfactorial; factorialnull; alert(anotherFactorial(4));这个是错误的。我们可以用arguments.callee解决这个问题arguments.callee是一个指向正在执行的函数的指针因此可以用它来实现对函数的递归第调用。1234567891011function factorial(num){ if(num1){ return 1; }else{ return num*arguments.callee(num-1); } } var anotherFactorialfactorial; factorialnull; alert(anotherFactorial(4));但是在严格模式下脚本是不能访问arguments.callee的。我们可以使用函数表达式来达成相同的结过。1234567891011var factorial(function f(num){ if(num 1 ){ return 1 }else{ return num * f(num-1); } }); var anotherFactorialfactorial; factorialnull; alert(anotherFactorial(4)); 来自为知笔记(Wiz)