[javascript] var, let, const의 전역 스코프 동작 방식

JavaScript에서 변수를 선언할 때 var, let, const를 사용합니다. 각각의 키워드는 다른 방식으로 동작하며, 특히 전역 스코프에서의 동작은 중요합니다.

var의 전역 스코프 동작

var 키워드로 선언된 변수는 전역 스코프 또는 함수 스코프에서 동작합니다. 전역 스코프에서 var로 선언된 변수는 전역 객체(window 객체 브라우저 환경에서)의 프로퍼티로 생성됩니다.

var globalVar = 10;
console.log(window.globalVar); // 10 (브라우저 환경에서)

이때 var 키워드로 선언된 변수는 호이스팅(hoisting)되어 선언 전에도 접근할 수 있습니다.

let과 const의 전역 스코프 동작

반면에, letconst는 전역 스코프에서는 전역 객체의 프로퍼티로 생성되지 않습니다. 이는 스코프 내에서만 유효한 블록 스코프를 갖기 때문입니다.

let globalLet = 20;
console.log(window.globalLet); // undefined (브라우저 환경에서)

const globalConst = 30;
console.log(window.globalConst); // undefined (브라우저 환경에서)

또한, letconst 역시 호이스팅되지만, 선언 전에는 변수에 접근할 수 없습니다.

결론

전역 스코프에서의 var, let, const의 동작 방식은 각각의 특징을 이해하고 적절하게 활용하는 데 중요합니다. 적절한 변수 선언 키워드를 선택하여 코드를 작성함으로써 전역 스코프에서의 변수 관리를 더욱 효과적으로 할 수 있습니다.

참고 자료: MDN web docs - var, MDN web docs - let, MDN web docs - const