JS 공부/이론 정리

[JS] var, let, const에 대해서 공부해보자.

장아장 2023. 7. 17. 00:12

모든 변수를 var로 쓰지 말아야 했는데 난 그 사실을 몰랐어..

Var, Let, Const에 대해서 공부를 했어야 했다. 

네이버 부스트캠프를 하면서 자바스크립트를 처음 써봤는데, 알고리즘만 풀어보고, 이론에 대해서 공부를 안해봤다. 

그래서, 모든 변수를 var로 써버리다가 문제가 생겼었다. 

그래서 이걸 대비하기 위해, 해당 내용들을 정리해보았다. 

  • 차이점
    • 범위
      • var : 함수 내에서 선언하면 함수 안에서만, 밖에서면 전역 변수로 할당된다.
      • let : 중괄호로 만들어진 블록 범위에서만 할당된다.
      • const : 중괄호로 만들어진 블록 범위에서만 할당된다.
    • 재선언
      • var : 같은 범위 내에서 변수를 재선언할 수 있다.
      • let : 같은 범위 내에서 변수를 재선언할 수 없다.
      • const : 변수를 재선언할 수 없습니다. 상수로 취급되며, 선언 시 초기 값을 할당해야 한다.
    • 할당
      • var : 같은 범위 내에서 변수를 재할당 할 수 있다.
      • let : 같은 범위 내에서 변수를 재할당 할 수 있다.
      • const : 변수를 재할당 할 수 없습니다. 상수로 취급되며, 선언 시 초기 값을 할당해야 한다.
    • 호이스팅
      • var : 변수 선언부가 자동적으로 동작하는 범위 제일 위쪽으로 끌어올려진다. 그래서, 선언전에도 변수가 예기치 않게 사용될 수 있다.
      • let : 호이스팅은 발생하지만, 변수를 선언하기 전에 사용할 수 없다. 이로 인한 에러를 띄워준다.
      • const : 호이스팅은 발생하지만, 변수를 선언하기 전에 사용할 수 없다. 이로 인한 에러를 띄워준다.
    • 전역 객체 속성
      • var : 전역 객체(의 속성으로 취급됩니다. 이로 인해 전역 범위에서 어디서든 접근할 수 있다.
      • let : 전역 객체의 속성으로 취급되지 않는다.
      • const : 전역 객체의 속성으로 취급되지 않는다.
      • 호이스팅

이렇게 공부를 했는데, 호이스팅이라는 개념도 처음봤다. 이건 다음 포스트에서 써야겠다

 

그럼...twenty thousand...🔥