JavaScript中这两个函数声明有什么区别?

Jam*_*man 5 javascript

可能重复:
JavaScript:var functionName = function(){} vs function functionName(){}

在JavaScript中我们可以说:

function a() {};
Run Code Online (Sandbox Code Playgroud)

或者我们可以说

var a = function() {};
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释这些有何不同之处,如果有的话,更为可取的,在什么情况下每个人都会使用?

任何链接或外部阅读也将非常感激.