프로그래밍 기초 상식/var,const,let 차이 및 호이스팅,스코프

키워드(속성)의 차이, 호이스팅 ,스코프

흙으로만든형 2022. 7. 16. 19:03

키워드(속성) Identifier(식별자) = 변수(변수값)

 

식별자는 변수에 해당하는 Memory 공간의 address와 value 값 중 value를 가져온다

- js는 managed language이기에 변수에 저장된 address를 읽어오는 reference(참조)를 할 필요가 없기에

                    

ex) const Knumber = 30       //변수  (키워드,속성)              : const

                                            //변수명(식별자,속성값)          : Knumber

                                            //변수값(할당된 즉 저장된 값) : 30

 

 

호이스팅(hoisting) : 모든 선언문이 포함된 코드를 먼저 실행 후 순차적으로 실행

                                (선언한 모든 식별자도 호이스팅 됌)

 

*재할당 : 재할당은 변수에 저장된 값을 다른 값으로 변경하는 것으로,

                만약 변경할 수 없는 값이라면 이는 변수가 아니라 상수(constant)라 부름

 

var 의 문제점 

  • 변수 중복 선언 가능하여, 예기치 못한 값을 반환할 수 있다.
  • 함수 레벨 스코프로 인해 함수 외부에서 선언한 변수는 모두 전역 변수로 된다.
  • 변수 선언문 이전에 변수를 참조하면 언제나 undefined를 반환한다.

let 은 키워드로는 변수 중복 선언이 불가하지만, 재할당은 가능하다.

const가 let과 다른 점이 있다면, 반드시 선언과 초기화를 동시에 진행되어야 한다.

 

변하는 값은 let으로 변하지 않을 값은 const~~

자세한 사항은 MJ Kim님 블로그~

https://www.howdy-mj.me/javascript/var-let-const/

 

var, let, const의 차이 ⏤ 변수 선언 및 할당, 호이스팅, 스코프

자바스크립트에서 var로 변수 선언이 가능했는데, 왜 const와 let이 나왔으며 이 둘의 사용을 권장할까? 이를 정확하게 알기 위해서는, 변수의 선언 및 할당 과정, 호이스팅, 스코프를 알아야한다.

www.howdy-mj.me