[JavaScript] var, let, const

코린이의 성장일기·2023년 12월 8일
post-thumbnail

var

  • 중복선언과 재할당이 가능하며 마지막 선언된 값으로 재할당
  • 자율성은 있지만 소스코드가 복잡해질경우 어떤 부분에서 재할당 됐는지 파악하기 힘듦
  • 위에 이유들로 잘 안씀

let

  • 중복선언은 불가능하지만 재할당은 가능
  • 값이 변경되는게 예상될경우 사용

    • let을 이용해 중복선언을하게되면 이미 선언되어있다는 문법오류가 발생된다.
  • let으로 중복선언시 이미 빨간 밑줄을 통해서 무언가 잘못됐다는걸 알려주기도하고
    현재 사용중인 errorLense 익스텐션을 통해서 중복선언이 불가능하다는걸 알 수 있다.


  • 두번째 b에서 let 선언코드를 지우고 재할당만 할 경우 마지막 값으로 재할당 된다.

const

  • 중복선언과 재할당 모두 불가능
  • 상수로써 선언과 값 모두 변경하지 않아야할경우 사용한다


    const의 중복선언시 문법오류가 발생한다.


    const의 재할당시 타입에러가 발생한다.



두번째 b를 블록처리하고 실행했더니 정상적으로 출력된다.

하지만 const도 재할당이 가능하다

???????????????????????????????

안된다면서?????????????

'원시타입일 경우에만 말이다'

이게 무슨 개소리야!?

JavaScript의 타입은 두가지로 나누어진다. 원시타입과 참조타입.

참조타입일 경우 주소(index) 를 저장하기 때문에 값은 변경이 가능하다.

참조타입은 배열(Array)와 객체(object)로 나누어진다.



배열과 객체 모두 '값은 재할당이 가능하다.'

하지만 직접 재할당하려고 할 경우 재할당이 불가능하다는 타입에러가 발생한다.

이번 포스팅에서는 var, let, const의 특징들과 사용법을 알아보았다.
같은 함수라도 전역적(global)으로 사용하게 될 경우 중복선언과 재할당이 불가능하지만 scope에 따라서 사용방법이 달라진다.

전역이 뭐야? 스크립트의 전(체영)역이라고 쉽게 알고가자.

다음 포스팅에서는 scope에 대해서 공부해보겠다.
scope에 따라 변수의 재할당이 가능해지는 경우도 있다.

profile
작동하는 코드만 만들면 반은 완성이다.

0개의 댓글