[mjt] 전역 객체에 대해 알아보자
전역 객체에 대해 알아보자
JavaScript에서 전역 객체(Global Object)는 모든 환경에서 사용할 수 있는 특수 객체입니다. 브라우저, Node.js, 또는 기타 JavaScript 실행 환경에 따라 전역 객체의 형태와 기능은 다소 달라지지만, 핵심 개념은 동일하다. 전역 객체의 정의와 특징, 주요 프로퍼티, 실행환경에서의 차이를 알아보자.
전역 객체란?
1-1) 어디서든 접근 가능
별도의 import 없이 바로 사용할 수 있습니다.
1-2) 환경에 따라 이름이 다름
-
브라우저
: window, self, frames, globalThis -
Node.js
: global, globalThis
1-3) 전역 변수와의 관계
전역 변수로 선언된 값은 전역 객체의 프로퍼티로 등록됩니다.
전역 객체의 실행 환경별 이름
2-1) 브라우저 환경
브라우저에서 전역 객체는 주로 window
로 접근한다.
console.log(window); // 브라우저의 전역 객체
console.log(window.document); // DOM 접근
2-2) Node.js 환경
Node.js에서는 전역 객체를 global
로 접근한다.
console.log(global); // Node.js의 전역 객체
2-3) 공통으로 사용 가능한 globalThis
ECMAScript 2020부터 추가된 globalThis
는 실행 환경에 상관없이 전역 객체에 접근할 수 있다
console.log(globalThis); // 환경에 따라 적합한 전역 객체 반환
전역 객체의 주요 프로퍼티와 메서드
3-1) 브라우저 환경의 주요 프로퍼티
-
window.document
: DOM(Document Object Model)에 접근 -
window.localStorage
: 데이터를 브라우저에 저장 -
window.location
: 현재 URL 정보를 제공 -
window.setTimeout
: 일정 시간 후에 콜백 함수를 실행
console.log(window.location.href); // 현재 페이지의 URL 출력
3-2) Node.js 환경의 주요 프로퍼티
-
global.console
: 콘솔 출력 메서드 -
global.process
: 현재 프로세스 정보 -
global.setTimeout
: 일정 시간 후에 콜백 함수를 실행 -
global.Buffer
: 버퍼 데이터 처리
전역 객체 활용 사례
4-1) 브라우저에서 DOM 조작
document.body.style.backgroundColor = "lightblue";
4-2) 전역 타이머 메서드
setTimeout(() => {
console.log("1초 뒤에 실행됩니다.");
}, 1000);
회고
- 전역 객체(Global Object)는 JavaScript의 모든 실행 환경에서 기본적으로 제공된다.
- 환경에 따라 이름과 프로퍼티가 달라지지만, 핵심 개념은 동일하다.
- 보안성과 유지보수성을 고려해 전역 객체의 사용을 적절히 제한하고, 모듈 시스템을 활용하는 것이 좋다.