javascript

let, const , var 에 대하여 (재할당과 재선언)

늘곰's 2023. 11. 29. 17:12

이셋을 알기 위해서 먼저 재할당재선언 에 대해 알아야한다.

 

재할당

변수에 할당된 데이터를 다시 할당하는 것으로
let a = 123
a= 456 
과 같은 형태로 a의 변수를 재할당하는것이다. 

 

재선언

변수를 선언할때 var, let , const 를 사용하여 변수를 선언하게되는데
재선언은 변수를 동일한 스코프 내에서 다시 선언하는 것을 의미

var a = 123

var a = 456

과 같은 형태로 a의 변수를 재선언하는것이다.

 

여기서 var , let , const의 각각의 성격이 달라진다.

 

var : 재할당과 재선언이 모두 가능하다. 

let : 재할당은 가능하지만 재선언은 불가능하다.

const : 재할당과 재선언 모두 불가능하다.

 

그렇다면 var 보다  let 이나 const를 사용하는것이 좋다 라는 말이 왜 생기는것일까??

 

1. 블록스코프 : var 함수스코프를 가지고 있어서 함수 전체에서 유효하게되지만 let , const는 블록스코프를 가지고있어블록{중괄호} 안에서만 유효하다. 이를통해서 좀 더 변수의 범위를 파악하기 용이하다.

2. 재선언 방지 : let , const 는 한번만 선언 할 수있기 때문에 재선언을 방지한다.  name , date 같은 흔히 쓰이는 변수명들은 재선언될 가능성이 있고 이때문에 데이터가 의도치 않는 상황으로 바뀔수 있는 것을 방지해준다.

 

3. 호이스팅 차이 : var 는 호이스팅이 되었을때 undefined 가 뜨지만 let, const는  에러 (Cannot access 'b' before initialization) 가 생깁니다. 이 때문에 디버깅을 하기 쉽고 의도지않은 동작을 방지 할 수 있습니다.