var, let, const 의 차이점과 호이스팅

뱀기·2021년 10월 13일
0

그냥 정말 간단하게 면접 대답이라고 생각하고 써내려가고자 합니다. (그림, 꾸밈 없을 예정)

var은 동일한 이름으로 여러 번 중복해서 선언이 가능하다.
이와 같은 경우, 마지막에 할당된 값이 변수에 저장된다.
변수를 유연하게 사용할 수 있다는 장점이 될 수 있지만, 기존에 선언한 변수의 존재를 잊고 값을 재할당하는 등의 실수가 발생할 가능성이 크다.
코드량이 많아졌을 때, 같은 이름의 변수명이 여러번 선언되었다면, 어디 부분에서 문제가 발생했는지 파악하기 힘들고 값이 바뀔 우려가 있다.

이를 보완하기 위해 let과 const가 es6 문법부터 추가됐다.

let은 중복 선언이 불가능하고 값의 재할당이 가능하다.
변수 선언 및 초기화 후 반복해서 다른 값을 재할당 할 수 있습니다.

const는 중복 선언과 재할당이 모두 불가능하다.
값의 불변을 의미하는 것은 아니고, 값을 재할당하는 코드만 불가능하다.

const를 기본으로 사용하여 불필요한 변수의 재사용을 방지하고, 재할당이 필요한 경우 let을 사용하는 것이 바람직하다.

호이스팅이란 변수를 선언하고 초기화 했을 때 선언 부분이 최상단으로 끌어올려지는 현상을 의미한다.
호이스팅 메커니즘은 잠재적 버그와 혼란을 피하도록 도와준다.
호이스팅의 사이드 이펙트를 피하기 위해 항상 변수를 스코프 최상단에 선언하도록 하고 선언과 함께 초기화를 해야한다.

 사이드 이펙트 : 어떤 함수 내에서 자신의 스코프가 아닌 변수들을 제어하는 것을 말한다.
 스코프 : 변수에 접근할 수 있는 범위

0개의 댓글