一、调用顺序不同
1、var a=function:匿名函数的定义方法,若是在定义之前调用了,系统会报错。
2、function a:该方法的定义是全局性的,就算在调用之后定义,系统也不会报错。
二、初始化不同
1、var a=function:只用运行到这个方法时才能对变量a进行初始化,若是没有对变量a初始化,则会报错。此时,a代表后面匿名函数的返回值。
2、function a:系统在执行到该方法时再去找该方法的定义位置进行初始化。
三、特点不同
1、var a=function:在javascript中,方法被当作一个类来处理,这中定义方式下,a即带表了这个方法的类,也就是这个方法本身。
2、function a:若是在该方法中,返回值为数组、方法、或是别的类,那么a不在表示该方法,而是表示返回的新类了。
参考资料来源:百度百科-Function函数
参考资料来源:百度百科-Function
原因:JavaScript 函数和变量声明的“提前”(hoist)行为。
区别一:代码一,加载js 代码之后 a 被 “提前",但是 function 里面的具体内容不会被提前。就是在调用 的时候就会去初始化 function 里面的代码块。代码二:加载的时候就 “提前”了。
//代码一: js 作用域污染强烈推荐看下 :
http://www.zhihu.com/question/19878052
本回答被网友采纳