Cs

10. javascript let, var, const 의 차이

ITSEONG 2022. 4. 7. 21:51

오늘은 javascript의 let, var, const에 대해 알아보려 한다.

 

공통점

 

var, let, const는 변수 선언에 사용된다.

 

 

변수의 범위

 

var : 현재 실행 문맥, 문맥은 둘러싼 함수, 함수의 외부의 전역으로 선언된 변수

 

let : 자신을 선언한 블록, 모든 하위 블록을 스스로의 스코프로 가진다.

 

const : 선언된 함수에 전역 또는 지역일 수 있는 상수를 만든다. let과 동일 , 차이는 다시 값을 할당할 수 없다. 처음 선언할 때 값을 지정해야 한다.

 

var와 let의 차이 

 

var는 같은 함수 안에서는 같은 변수이다.

let은 블록을 기준으로 하위 블록에서 재선언을 하면 다른 변수가 된다.

 

프로그램 최상단에서 사용할 경우

var는 전역 객체에 속성을 추가한다. let은 추가하지 않는다.

var 호이스팅

- 어디에서 변수 선언이 되어도 그 변수는  최상단에서 선언한 것과 같다. 변수 선언이 함수 또는 전역 코드의 상단으로 이동하는 것을 호이 스팅이라고 한다. 이러한 이유로 변수 선언은 항상 상단에서 선언하기를 권장한다. 그러하면 범위는 함수 내로 지정이 된다.

 

let 재선언

- let으로 선언된  같은 변수는 블록 안에서 재선언 할 수 없다. syntaxError를 발생한다.

 

정리

 

- var는 자신이 선언된 함수를 스코프로 가지고 스코프 내에서 선언 시 상단에서 선언하는 것과 동일하다.

- let은  자신이 선언된 블록과 하위 블록을 스코프로 가지고 자신이 선언된 블록에서는 재선언이 불가하고 하위 블록에서 선언하면 다른 변수가 된다.

- const는 처음 지정시 값을 지정해줘야 하고 지정된 후에는 값을 변경할 수 없다. let과 동일하게 자신이 선언된 블록과 하위 블록을 스코프로 가진다.

 

 

반응형