function文とfunction式の違い
console.log(typeof fn1); // undefined console.log(typeof fn2); // function var fn1 = function(){}; function fn2(){}
varによる変数宣言は、スコープに入ったとき変数の追加だけ行われ、宣言のある行で値の代入が行われる。それに対してfunction式で定義した関数は、スコープに入ったときから使用可能。なので
function Hoge(){}
と
var Hoge = function(){};
は完全に同じではない。