본문 바로가기
개발 Study/JS,TS

[JavaScript] let/var/const의 차이

by jiyoon_92 2022. 8. 1.
반응형

변수 선언 시 자주 쓰이는  let/var/const 의 차이는 무엇일까? 자바스크립트 초보인 내게 자문자답하며~ 개념을 정리해보자

1. var 선언

var로 선언하는 경우 자바스크립트는 호이스팅(변수 선언이 어디에 있든 상관없이 다른 코드보다 먼저 실행되는 특징) 에 따라 선언된 변수에 undefined가 먼저 할당된다.

console.log(name) // output : undefined

var name = 'jiyoon';

console.log(name); // output : jiyoon

또한, var의 경우 같은 함수 내에서 변수 사용이 가능하며 변수에 값을 재할당 할 수 있다.

그리고 변수의 중복 선언이 가능하다.

 

2. let 선언

let으로 선언하는 경우 선언보다 전에 호출했을 때 name에 undefined가 할당이 되지 않으며 에러가 발생한다.

console.log(name); // output: Uncaught ReferenceError: name is not defined

let name = 'jiyoon';

console.log(name); // output : jiyoon

함수가 아닌 블록단위의 스코프(if, for, while, try/catch 등)  내에서 변수 사용이 가능하며 마찬가지로 변수에 값을 재할당 할 수 있다.

그러나 변수의 중복 선언은 불가능하다.

 

3. const 선언

const로 선언하는 경우 변수의 선언과 할당을 동시에 해야한다.

const name = 'jiyoon';

console.log(name); //output : jiyoon

마찬가지로 중복 선언은 불가능하며 변수에 값을 재할당 할 수는 없지만,

객체는 아래와 같이 재할당이 가능하다.

const initialState = {
    user : '',
    room_state : []
};

initialState.user = 'jiyoon';
console.log(initialState.user); //output : jiyoon

 

javascript는 처음이라 무분별하게 사용하다가 이제 개념이 잡혔으니 리팩토링을 해봐야겠다^^

반응형

댓글