* JavaScript는 hoisting방식으로 위치, 순서와 상관없이 변수선언의 코드를 먼저 읽어들인다.
- 변수뿐만 아니라 function, class등의 키워드를 통해 선언된 식별자 관련된 것들은 먼저 hoisting된다.
* var
- var를 통한 변수 선언은 선언과 동시에 초기화 된다.
- 중복 선언이 '가능'하다.
- 변수값 재할당이 가능하다.
- 함수코드 블록 외에 선언된 var는 전역변수 범위(scope)를 갖게된다.
- 변수 선언 이전에 변수를 참조하면 undefined를 반환한다.
ex) var number;
- undefined로 할당되 메모리상에 공간을 잡아먹고 선언과 동시에 초기화 된다.
* let
- let을 통한 변수선언은 선언과 동시에 초기화 된다.
- 중복 선언이 '불가능'하다.
- 변수값 재할당이 가능하다.
- let은 var와 다르게 선언과 초기화 단계가 분리되어 진행된다. JavaScript엔진에 의해 선언이 먼저 이뤄지지만 초기화 하기 전에 참조하려 할 시 에러를 발생시킨다.
* const
- 선언과 초기화가 동시에 진행된다.
(* 선언과 동시에 초기화 된 값은 이후에 재할당이 불가능하다.)
- 중복 선언이 '불가능'하다
- let과 동일하게 block-level scope를 따른다.
- var보다는 let과 const사용이 권장되며 상수형태의 값을 선언 할 시에는 const사용을 권장한다.
'JAVA Script' 카테고리의 다른 글
Java Script(3) (0) | 2022.09.20 |
---|---|
Java Script(2) (0) | 2022.09.19 |
Java Script(1) (0) | 2022.09.16 |