3일차 호이스팅과 TDZ: 자바스크립트는 왜 내 변수를 숨겼을까? (feat. Call Stack)
목표 : 풀스택 개발자·2025. 11. 24.
1. 문제의 시작: "코드는 위에서 아래로 실행된다?"자바스크립트를 처음 배울 때 가장 많이 하는 착각은 "코드가 무조건 1번 줄부터 순서대로 실행된다"는 것입니다. 하지만 개발을 하다 보면, 선언하지도 않은 함수가 실행되거나(var), 반대로 분명히 선언했는데 에러가 나는(let) 기이한 현상을 마주하게 됩니다.오늘 나는 자바스크립트 엔진이 코드를 실행하기 전 거치는 **'준비 단계(Creation Phase)'**를 통해 이 현상의 원인을 파헤쳐 보았습니다.2. 호이스팅(Hoisting)과 TDZ의 진실가장 헷갈렸던 부분은 var와 let의 동작 차이였습니다.[실험 코드] // 상황 1: varconsole.log(name); // undefined (에러 안 남!)var name = "Gildong..