JS.TS

자바스크립트 기본 문법 (자료형)

mmalmmizal 2024. 6. 25. 12:46

https://www.freecodecamp.org/korean/news/var-let-constyi-caijeomeun/ 

https://velog.io/@1nthek/JavaScript-%EB%B3%80%EC%88%98%EC%99%80-%ED%95%A8%EC%88%98-%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85Hoisting%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

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