오늘은 JavaScript 언어의 가장 기본이자 핵심적인 부분 중 하나인 변수에 대해 알아보겠습니다.
변수는 데이터를 담기 위한 그릇으로, 메모리에 값을 저장하고 참조하는 역할을 합니다. JavaScript에서는 var, let, const 키워드를 사용하여 변수를 선언합니다.
var
let
const
변수를 선언하고 값을 할당하는 방법은 다음과 같습니다:
// 변수 선언
var x;
// 값 할당
x = 10;
// 변수 선언과 동시에 값 할당
var y = 20;
스코프는 변수가 어디에서 살아있는지 말씀드리는 개념입니다. 변수를 사용할 때, 그 변수가 어디까지 유효한지를 결정하는 규칙이라고 생각할 수 있습니다.
전역 스코프 (Global Scope):
지역 스코프 (Local Scope):
함수 스코프 (Function Scope):
function exampleFunction() {
var localVariable = 20; // 이 변수는 exampleFunction 안에서만 사용 가능해요
console.log(localVariable);
}
console.log(localVariable); // 에러! 여기서는 localVariable을 사용할 수 없어요
블록 스코프 (Block Scope):
{}로 감싸진 블록 내에서 선언된 변수는 그 블록의 스코프에 속합니다.
JavaScript에서는 let과 const 키워드를 사용하여 블록 스코프를 만들 수 있습니다.
if (true) {
let blockVariable = 30; // 이 변수는 if 블록 안에서만 사용 가능해요
console.log(blockVariable);
}
console.log(blockVariable); // 에러! 여기서는 blockVariable을 사용할 수 없어요
💡 요약하면, 함수 스코프와 블록 스코프는 지역 스코프를 정의하는데 사용되는 용어입니다. 함수 스코프는 주로 함수 내에서 변수의 유효 범위를 나타내고, 블록 스코프는 {}로 감싸진 블록 내에서 변수의 유효 범위를 나타냅니다.
var는 선언은 호이스팅되지만 초기화는 되지 않습니다.let과 const는 블록 스코프이기 때문에 선언과 초기화가 모두 호이스팅됩니다.console.log(hoistedVar); // undefined
var hoistedVar = '호이스팅 변수';
console.log(nonHoistedLet); // ReferenceError: Cannot access 'nonHoistedLet' before initialization
let nonHoistedLet = '호이스팅 되지 않는 변수';
변수는 JavaScript 프로그래밍의 핵심이므로, 스코프와 호이스팅 등의 개념을 이해하면 더욱 효과적으로 프로그래밍할 수 있습니다.
📌 참고: [ 자바스크립트 완벽 가이드 ]