//代码一:
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 里面的代码块。代码二:加载的时候就 “提前”了。