자바스크립트에서 어렵다고 생각하는 개념이 hoisting 입니다.
function abc() {
var a = 'bbb';
console.log(a) // ---- 1
function c() {
console.log(a); // --- 2
(function() {
console.log(a); // --- 3
a = 'ccc';
})();
var a;
console.log(a) // ---4
}
function d() {
console.log(a); // --- 5
// var a = 3;
}
c();
a = 'ddd';
d();
};