JavaScriptの関数での宣言の巻き上げは変数は巻き上げるが、変数の値は巻き上げない。
var a = 1;
var func = function() {
console.log(a);
var a = 1;
}
func();
//=>undefined
以下のコードと同じ。
var a = 1;
var func = function() {
var a;
console.log(a);
a = 1;
}
func();
//=>undefined