키워드(속성) 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