2025/11/06 12

🟨 1-7. 스코프(Scope)와 호이스팅(Hoisting) — 변수와 함수가 살아 움직이는 방식

자바스크립트를 배우면서 가장 많은 혼란을 주는 개념 중 하나가 바로스코프(Scope) 와 호이스팅(Hoisting) 이다.변수를 선언했는데 값이 예상과 다르게 나오거나,함수를 아래쪽에 적었는데도 실행되는 이유가 바로 이 두 개념 때문이다.이번 글에서는‘자바스크립트가 코드를 실행할 때 실제로 무슨 일이 일어나는지’를눈앞에 그리듯 차근히 설명해보자.1. 스코프(Scope)란 무엇인가스코프란 “변수와 함수가 유효한 범위”를 말한다.즉, 어떤 변수를 어디서 접근할 수 있고 어디서는 접근할 수 없는지를 결정하는 규칙이다.예를 들어, 아래 코드를 보자.let name = "기범"; // 전역 변수function greet() { let message = "안녕하세요"; // 지역 변수 console.log(me..

frontend/javascript 2025.11.06

🟨 1-6. 함수 선언문 vs 함수 표현식 — 호출 타이밍과 작동 원리 완벽 이해

“자바스크립트 함수의 진짜 차이를 모르면, 코드가 왜 에러 나는지 절대 알 수 없다.”🚀 들어가며프로그래밍에서 함수는 단순히 코드를 묶는 도구가 아니다.“재사용성과 구조의 출발점” 이며, 자바스크립트에서는 특히 함수가 일급 객체(First-class Object) 로 취급된다.그런데 막상 코드를 짜다 보면 이런 혼란에 자주 빠진다.sayHello(); // ✅ 작동됨greet(); // ❌ ReferenceErrorfunction sayHello() { console.log("안녕하세요!");}const greet = function() { console.log("반가워요!");};둘 다 “함수 선언” 같아 보이는데, 왜 하나만 실행될까?이것이 바로 함수 선언문(Function Declarat..

frontend/javascript 2025.11.06