https://www.freecodecamp.org/korean/news/var-let-constyi-caijeomeun/
Var, Let, Const의 차이점은?
ES2015(ES6)에서 반짝이는 새로운 기능들이 많이 등장했습니다. 2020년이 된 지금, 많은 JavaScript 개발자들이 그 기능들을 사용하기 시작했을 것이며 또 익숙해졌을텐데요. 여전히 그 중 몇몇은 일부
www.freecodecamp.org
* 호이스팅?
함수 내의 변수 및 함수 선언을 각 유효 범위의 최상단으로 끌어 올려주는 JS의 방식
예를 들어 var 형의 변수를 선언.할당하기 전에 호출하면 오류 나지 않고 undefined값을 출력
var는 선언과 동시에 초기화가 이루어진다. 즉, 선언과 동시에 undefined가 할당된다.
let과 const은 선언만 될뿐, 초기화가 이루어지지 않는 메모리 할당이 아직 되지 않은 TDZ에 들어가게 된다.
console.log(a);
var a = "hello';
var
함수 외부에서 선언될 때 범위 -> 전역 범위
함수 내에서 선언될 때 -> 함수 범위, 해당 함수 내에서만 사용.접근 가능
같은 범위 내에서 재선언, 업데이트 가능
호이스팅할 시 var변수는 맨 위로 올려지고, 값은 undefined로 초기화
let
블록 {} 범위. 해당 {} 내에서만 사용 가능
재선언 불가능, 업데이트 가능
호이스팅할 시 let의 키워드는 초기화 되지 않음. ReferenceError(참조오류) 발생
const
블록 범위
재선언, 업데이트 불가능. 선언 당시 초기화 되어야 함.
호이스팅할 시 초기화 되지 않음.
재선언 | 값 업데이트 | 호이스팅 | 스코프 | |
var | 가능 | 가능 | undefined | 전역 or 함수범위 |
let | 불가능 | 가능 | Reference Error | 블록 범위 |
const | 불가능 | TypeError |
'JS.TS' 카테고리의 다른 글
javascript로 XML 태그, 속성 분석하기 (0) | 2024.07.17 |
---|---|
객체 배열과 인스턴스 메소드 / 정규 표현식과 match, parseInt / 문자열 포맷팅 (0) | 2024.07.15 |
JS 모듈 (CommonJS 모듈 / ES 모듈) (0) | 2024.06.26 |
자바스크립트 기본 문법 (입출력) (0) | 2024.06.23 |
react Context (0) | 2024.05.12 |