jennet1 님의 블로그
JS [변수] 본문
1. var
- ES5 이전에 사용되던 변수 선언 방식이다.
- 스코프 를 가지며 블록 안에서 선언된 경우에도 함수 전체에서 접근이 가능
- 재선언 : 동일한 이름으로 여러 번 선언이 가능하다.
장점
- 함수 내에서 선언한 var 변수는 전역에서도 접근 할 수 있어 특정 상황에서 유용
- 선언 전 사용 가능 : 선언하기 전에 사용가능 단 초기값이 없으면 undefined 반환된다
단점
- 함수 스코프이기 때문에 블록 내에서 선언한 var 변수도 함수 전체에서 접근할 수 있어 의도치 않는 변수를 재사용 할 위험이 있다.
- 재선언 기능 : 동일한 이름으로 여러번 선언이 가능하기 때문에 가독성을 떨어뜨리고 변수 충돌의 위험이 있다.
function example() {
if (true) {
var x = 10; // 블록 안에서 선언
}
console.log(x); // 출력: 10
}
example();
2. let
- ES6 에서 도입된 변수 선언 방식
- 블록 스코프를 가지며 블록 안에서만 유효하다.
- 재선언 : 동일한 이름으로 재선언 불가
장점
- 블록 내에서만 유요하므로 변수가 의도한 범위 내에서만 접근 가능해 코드 가독성 향상됨
- 재선언 불가 : 동일한 이름으로 재선언 할 수 없어 변수 충돌 위험이 줄어듬
단점
- let 변수도 호이스팅이 되지만 선언하기 전까지 사용할 수없다. 선언 전에 사용하면 ReferenceError 에러가 발생함
function example() {
if (true) {
let y = 20; // 블록 안에서 선언
console.log(y); // 출력: 20
}
console.log(y); // ReferenceError: y is not defined
}
example();
3. const
- ES6 에서 도입된 변수 선언 방식
- 블록 스코프를 가지며 let 과 동일
- 동일한 이름 재선언 불가
- 선언 시 값을 반드시 초기화해야하며 이후 값은 변경 불가
4. var , let , const 사용해야하는 곳
var ; 현대 자바스크립에서는 거의 사용하지 않음
let : 블록 스코프가 필요할 때 조건문 이나 반복문에서 변수를 선언할 때 사용
const : 값을 변경하지 않아야 할 경우 사용한다. 항상 선언과 동시에 초기화 해야 하므로 변할 필요가 없다.