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