JavaScript 변수와 상수, 스코프와 호이스팅
JavaScript의 변수와 상수는 모든 코드의 기초입니다. 변수 선언 방식 (var
, let
, const
)에 따라 동작 방식이 크게 달라지며, 스코프와 호이스팅 같은 개념이 변수의 접근성과 실행 순서에 영향을 미칩니다. 이 글에서는 이러한 개념을 체계적으로 정리하고, 이해를 돕기 위한 예제와 설명을 제공합니다.
목차
1. 변수와 상수의 개요
JavaScript에서 변수는 데이터를 저장하기 위한 컨테이너 역할을 합니다. 변수 선언에는 var
, let
, const
세 가지 방법이 있습니다. 각각의 방식은 스코프와 재할당 가능 여부에서 차이가 있습니다.
변수와 상수의 핵심 특징
var
: 함수 스코프, 재선언 가능let
: 블록 스코프, 재선언 불가const
: 블록 스코프, 재선언 및 재할당 불가
2. var, let, const의 차이점
특성 | var | let | const |
---|---|---|---|
스코프 | 함수 | 블록 | 블록 |
재선언 | 가능 | 불가능 | 불가능 |
재할당 | 가능 | 가능 | 불가능 |
3. 스코프(Scope) 이해하기
변수의 스코프는 변수에 접근할 수 있는 코드의 범위를 결정합니다. var
는 함수 스코프를 따르며, let
과 const
는 블록 스코프를 따릅니다.
예제
function example() {
if (true) {
var varVariable = "var";
let letVariable = "let";
const constVariable = "const";
}
console.log(varVariable); // var
console.log(letVariable); // ReferenceError
console.log(constVariable); // ReferenceError
}
example();
4. 호이스팅(Hoisting)의 작동 원리
호이스팅은 변수와 함수 선언이 코드의 최상단으로 끌어올려진 것처럼 동작하는 JavaScript의 특징입니다. var
는 선언과 초기화가 끌어올려지지만, let
과 const
는 선언만 호이스팅됩니다.
console.log(a); // undefined
var a = 10;
console.log(b); // ReferenceError
let b = 20;
5. 실제 예제
아래는 변수를 적절히 사용하여 코드를 작성한 간단한 예제입니다:
const MAX_USERS = 5;
let currentUsers = 0;
function addUser() {
if (currentUsers < MAX_USERS) {
currentUsers++;
console.log("User added. Current users:", currentUsers);
} else {
console.log("Maximum users reached.");
}
}
addUser();
addUser();
6. 변수와 상수 활용 모범 사례
- 상수는
const
로 선언하여 의도를 명확히 표현 - 필요한 최소 범위의 스코프에서 변수 선언
- 호이스팅을 고려한 선언 위치 정리
'프로그래밍 언어 > 자바스크립트' 카테고리의 다른 글
JavaScript 변수의 스코프와 상수의 불변성 (0) | 2024.12.12 |
---|---|
JavaScript null 이해하기, 데이터 타입과 값의 차이 (0) | 2024.12.06 |
JavaScript WeakSet: 정의, 사용법, 그리고 주요 특징 (0) | 2024.11.24 |
JavaScript WeakMap의 기본 사용법과 활용 사례 (0) | 2024.11.18 |
JavaScript Set, 중복 없는 데이터 관리와 활용법 (0) | 2024.11.12 |