본문 바로가기
728x90

호이스팅2

[JAVA SCRIPT] var, let, const의 차이점 : 모던 자바스크립트의 변수 설계 철학 자바스크립트 학습자가 가장 먼저 마주하는 벽이자, 숙련된 개발자조차 가끔 실수하는 영역이 바로 변수 선언(Variable Declaration)입니다. 과거에는 var 하나로 충분했지만, 웹 애플리케이션의 규모가 방대해지면서 자바스크립트는 더욱 엄격하고 안전한 변수 관리 체계를 도입했습니다. 오늘 우리는 ES6(2015) 이후 표준이 된 let과 const, 그리고 역사 속으로 사라지고 있는 var의 본질적인 차이를 심층 분석합니다.1. 왜 'var'는 은퇴의 길을 걷게 되었는가?초기 자바스크립트의 var는 유연함이 장점이었으나, 이는 곧 '예측 불가능성'이라는 독이 되었습니다. 가장 큰 문제는 함수 레벨 스코프(Function-level scope)와 호이스팅(Hoisting) 현상이었습니다. 변수를 .. 2026. 2. 23.
[JAVA SCRIPT] 변수 호이스팅(Hoisting)의 심층 이해와 모던 자바스크립트의 설계 철학 자바스크립트를 학습하며 가장 당혹스러운 순간 중 하나는 코드가 실행되기도 전에 변수가 이미 존재하거나, 선언되지 않은 변수를 참조했는데 에러가 발생하지 않는 상황일 것입니다. 이러한 현상을 일컬어 '호이스팅(Hoisting)'이라 부릅니다. 단순히 "끌어올려진다"는 사전적 의미를 넘어, 자바스크립트 엔진이 소스코드를 해석하는 메커니즘을 정확히 파악해야만 예측 가능한 코드를 작성할 수 있습니다.1. 호이스팅이란 무엇인가?호이스팅은 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. 코드상으로는 선언문이 아래에 있음에도 불구하고, 엔진은 '컴파일 단계'에서 전체 코드를 훑으며 선언문들을 찾아 실행 컨텍스트에 등록합니다. 실제 물리적으로 코드가 상단으로 이동하는 것은 아니지만,.. 2026. 2. 23.
728x90