모든 객체의 최상위 객체를 의미하며, 모든객체는 전역 객체의 자손으로 볼 수 있습니다.
전역 객체는 단 하나만 존재하며, new 연산자를 사용하여 새롭게 생성 할 수 없습니다.
또한 전역범위 (global scope)를 갖고 있습니다.
브라우저에서 let 이나 const 가 아닌 var 로 선언한 전역 함수나 전역 변수는 전역 객체의 프로퍼티가 됩니다.
alert(”Hello”);
// 위와 동일하게 동작합니다.
window.alert(”Hello”);
전역 변수는 되도록 사용되지 않는 것이 좋습니다. 함수를 만들 땐 외부 변수나 전역 변수를 사용하는 것보다 ‘인풋’ 변수를 받고 이를 이용해 ‘아웃풋’을 만들어내게 해야 테스트도 쉽고, 에러도 덜 만들어냅니다.
전역 객체는 모든 객체의 최상위 객체이고, 전역 변수는 전역 객체의 속성입니다. 즉, 전역 변수는 전역 객체에 속해 있는 변수라고 할 수 있습니다.
var name = “John Doe”;
이 코드에서 name은 전역 변수입니다. name 전역 객체의 속성으로 등록되기 때문에, 전역 객체를 통해 name 에 접근할 수 있습니다.
window.name; // “John Doe”
또한, 전역 객체의 속성을 통해 전역 변수에 접근할 수도 있습니다.
name= = “Jane Doe”;
console.log(window.name); // “Jane Doe”
이렇게 전역 객체와 전역 변수는 밀접한 관계를 가지고 있습니다.
좀 더 쉽게 설명하기 위해 다음과 같은 예제를 보겠습니다.
// 전역 변수 선언
var name = “John Doe”;
// 전역 변수에 접근
console.log(name); // “John Doe”
// 전역 객체를 통해 전역 변수에 접근
console.log(window.name); // “John Doe”
위 코드를 실행하면 다음과 같은 출력이 나타납니다.
John Doe
John Doe
첫 번째 출력은 전역 변수 name 에 직접 접근하여 얻은 값입니다. 두 번째 출력은 전역 객체를 통해 전역 변수 name 에 접근하여 얻은 값입니다. 두 출력은 모두 동일한 값을 가지므로, 전역 객체와 전역 변수는 밀접한 관계를 가지고 있다는 것을 알 수 있습니다.