목차:
- 변수와 상수란?
var
,let
,const
의 차이점- 변수의 선언 및 초기화
- 상수 선언하기 (
const
) - 변수와 상수의 유효 범위 (스코프)
let
과const
를 사용하는 이유
1. 변수와 상수란?
변수는 프로그램이 실행되는 동안 데이터를 저장하는 역할을 합니다. JavaScript에서는 키워드 var
, let
을 사용해 변수를 선언할 수 있습니다.
상수는 한 번 설정하면 값을 변경할 수 없는 변수입니다. JavaScript에서는 키워드 const
를 사용하여 상수를 선언합니다.
2. var
, let
, const
의 차이점
var
:- 초기 JavaScript부터 사용된 변수 선언 키워드입니다.
- 함수 스코프를 가집니다.
- 블록 범위(
{ }
)를 무시하기 때문에 예기치 않은 오류가 발생할 수 있습니다.
let
:- ES6(ECMAScript 2015)에서 도입된 변수 선언 키워드입니다.
- 블록 스코프를 가집니다. 즉,
{ }
내부에서만 유효합니다. - 재할당이 가능합니다.
const
:- ES6에서 도입된 상수 선언 키워드입니다.
- 블록 스코프를 가지며, 값 변경이 불가능합니다.
- 선언과 동시에 초기화가 필요합니다.
3. 변수의 선언 및 초기화
변수를 선언할 때 var
와 let
키워드를 사용하며, 초기화는 값을 할당하는 것을 의미합니다.
// var로 선언 및 초기화
var name = "Alice";
console.log(name); // "Alice"
// let으로 선언 및 초기화
let age = 25;
console.log(age); // 25
// 값을 변경할 수 있음
age = 26;
console.log(age); // 26
var
와 let
로 선언된 변수는 나중에 값을 재할당할 수 있습니다.
4. 상수 선언하기 (const
)
상수는 const
키워드를 사용하여 선언하며, 값을 변경할 수 없습니다. 선언할 때 초기화가 반드시 필요합니다.
// const로 선언 및 초기화
const PI = 3.14;
console.log(PI); // 3.14
// 값을 변경할 수 없음
PI = 3.14159; // 오류 발생
상수는 한 번 값이 설정되면 변경할 수 없기 때문에, 변경할 필요가 없는 값을 정의할 때 유용합니다.
5. 변수와 상수의 유효 범위 (스코프)
스코프란 변수가 유효한 범위를 말합니다.
- 함수 스코프:
-
var
로 선언된 변수는 함수 안에서만 유효합니다. 함수 밖에서 접근할 수 없습니다.
-
- 블록 스코프:
-
let
과const
로 선언된 변수는 블록{ }
안에서만 유효합니다. - 블록을 벗어나면 접근할 수 없습니다.
-
예시:
function testScope() {
var x = 1;
let y = 2;
const z = 3;
console.log(x); // 1
console.log(y); // 2
console.log(z); // 3
}
testScope();
console.log(x); // 오류 발생
console.log(y); // 오류 발생
console.log(z); // 오류 발생
x
, y
, z
는 testScope
함수 안에서만 유효하기 때문에 함수 밖에서는 접근할 수 없습니다.
6. let
과 const
를 사용하는 이유
JavaScript에서 let
과 const
는 var
보다 더 안전한 코드 작성을 가능하게 해 줍니다.
- 변수의 중복 선언을 방지:
let
과const
로 동일한 변수를 두 번 선언하면 오류가 발생하여 실수를 줄일 수 있습니다. - 스코프 제어가 용이: 블록 스코프를 따르기 때문에 코드가 복잡해져도 변수의 유효 범위를 쉽게 파악할 수 있습니다.
다음 시간을 위한 준비
오늘은 JavaScript에서 변수를 선언하는 다양한 방법과 유효 범위에 대해 배웠습니다. 다음 시간에는 JavaScript에서 사용할 수 있는 조건문(if, else, switch)을 배워보겠습니다.
감사합니다.
'Programming > Javascript' 카테고리의 다른 글
[8일차] JavaScript 함수 이해하기 – 함수 개념과 선언 방법 (2) | 2024.11.14 |
---|---|
[7일차] JavaScript 조건문 이해하기 (if, else, switch) (0) | 2024.11.13 |
[5일차] JavaScript의 데이터 타입 이해하기 (0) | 2024.11.11 |
[4일차] JavaScript 연산자와 조건문 - 로직 구현의 첫걸음 (0) | 2024.11.10 |
[3일차] JavaScript 기본 문법 – 기초 다지기 (2) | 2024.11.09 |