匿名函数var a =function(){}和function a(){}的区别

//代码一:

a(1);    //执行这个会报错
var a = function(index){
    alert(index);
}
a(2);    //执行这个不会报错
 
 
 
//代码二:
a(1);    //执行这个不会报错
function a(index){
    alert(index);
}
a(2);    //执行这个不会报错
 

原因:JavaScript函数和变量声明的“提前”(hoist)行为。

匿名函数只有在被调用时才被初始化。

区别:代码一,加载js 代码之后 a 被 “提前",但是 function 里面的具体内容不会被提前。就是在调用    的时候就会去初始化 function 里面的代码块。代码二:加载的时候就 “提前”了。

posted @ 2018-03-31 16:14  james_liang  阅读(1283)  评论(0编辑  收藏  举报