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