js函数

js函数有两种创建方式

一种是函数声明,另一种就是函数表达式。

function functionName(arg0,arg1,arg2){
      //函数体 

}

关于函数声明,它一个重要特征就是函数声明提升,意思是在执行代码之前就会先读取函数声明。这就意味着,可以把函数声明放在调用它的语句·后面。

sayHi();

function sayHi(){
   alert("Hi");

}

第二种创建函数的方式是使用函数表达式。函数表达式有几种不同的形式,下面是最常见的一种形式

var functionName = function(arg0,arg1,arg2){
    //函数体

};

这种情况下创建的函数叫做匿名函数。

函数·表达式与其它表达式一样,在使用前必须先赋值,以下代码会导致错误。

sayHi(); //错误,函数还不存在

var sayHi = function(){
    alert("Hi");
}

sayHi() //正确,放在下面调用才可以弹出,Hi

 2,递归

递归函数是在一个函数通过名字调用自身的情况下构成的,如下所示。

function factorial(num){

    if(num<=1){
        return 1;
    }else{

       return num*factorial(num-1)
     }
}
alert(factorial(5));   //5*4*3*2*f(1)=120
alert(factorial(4)); //4*3*2*f(1)= 24
 

方法二,以下代码创建一个名为f()的命名函数表达式,然后将它赋值给变量factorial,即便把函数赋值给了另外一个变量,函数的名字f仍然有效,所以递归调用照样能正确完成。
 var factorial = function f(num){

        if(num<=1){
            return 1;
        }else{
            return num*f(num-1)
        }
    };
    alert(factorial(5));   //5*4*3*2*f(1)=120

7.2 闭包

闭包是指有权访问另外一个函数作用域中的

原文地址:https://www.cnblogs.com/qianxunpu/p/7294521.html