函数声明、引用和调用,函数表达式

(1)函数声明  必须有函数名(如foo),它不是一个可执行语句,不可以自调用

function foo(){

    //函数体

}

var f = foo;  //函数引用

var ff = foo();  //函数调用,可直接调用foo(),也可调用f()

(2)赋值型函数表达式  即通过表达式定义函数,存储在变量里。函数表达式不需要函数名称,通常通过变量名来调用

var f = function foo(str){

    //函数体

}

f(a);

var x=f(a);

//分组括号型函数表达式,这是立即执行函数表达式

(function(){

    //函数体

})();

(function foo(){})();

举例:function foo(){}() 报错是因为function foo()是函数语句,而不是表达式,不能直接自调用。若(function foo(){})()则可以。

函数可以在声明之前调用,使用表达式定义函数时无法提升。   

myFunction(5);             

function myFunction(y) {       

    return y * y;       

}

你可能感兴趣的:(函数声明、引用和调用,函数表达式)