반응형
변수 선언 시 자주 쓰이는 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는 처음이라 무분별하게 사용하다가 이제 개념이 잡혔으니 리팩토링을 해봐야겠다^^
반응형
'개발 Study > JS,TS' 카테고리의 다른 글
[Typescript] 타입스크립트로 블록체인 만들기-(1)Typescript 기초 배우기 (3) | 2022.08.29 |
---|---|
[Javascript] Vanilla JS로 크롬 앱 만들기 - Review(2) (0) | 2022.08.12 |
[Javascript] Vanilla JS로 크롬 앱 만들기 - Review(1) (1) | 2022.08.11 |
댓글