[javascript] var, let, const의 전역 스코프 동작 방식
JavaScript에서 변수를 선언할 때 var
, let
, const
를 사용합니다. 각각의 키워드는 다른 방식으로 동작하며, 특히 전역 스코프에서의 동작은 중요합니다.
var의 전역 스코프 동작
var
키워드로 선언된 변수는 전역 스코프 또는 함수 스코프에서 동작합니다. 전역 스코프에서 var
로 선언된 변수는 전역 객체(window 객체 브라우저 환경에서)의 프로퍼티로 생성됩니다.
var globalVar = 10;
console.log(window.globalVar); // 10 (브라우저 환경에서)
이때 var
키워드로 선언된 변수는 호이스팅(hoisting)되어 선언 전에도 접근할 수 있습니다.
let과 const의 전역 스코프 동작
반면에, let
과 const
는 전역 스코프에서는 전역 객체의 프로퍼티로 생성되지 않습니다. 이는 스코프 내에서만 유효한 블록 스코프를 갖기 때문입니다.
let globalLet = 20;
console.log(window.globalLet); // undefined (브라우저 환경에서)
const globalConst = 30;
console.log(window.globalConst); // undefined (브라우저 환경에서)
또한, let
과 const
역시 호이스팅되지만, 선언 전에는 변수에 접근할 수 없습니다.
결론
전역 스코프에서의 var
, let
, const
의 동작 방식은 각각의 특징을 이해하고 적절하게 활용하는 데 중요합니다. 적절한 변수 선언 키워드를 선택하여 코드를 작성함으로써 전역 스코프에서의 변수 관리를 더욱 효과적으로 할 수 있습니다.
참고 자료: MDN web docs - var, MDN web docs - let, MDN web docs - const