JavaScript [GlobalThis]

kyoto01·2024년 1월 22일

JavaScript

목록 보기
3/4

전역 객체

모든 객체는 이 ‘전역개체’ 의 ‘프로퍼티’ 다


모든 객체의 최상위 객체를 의미하며, 모든객체는 전역 객체의 자손으로 볼 수 있습니다.

전역 객체는 단 하나만 존재하며, new 연산자를 사용하여 새롭게 생성 할 수 없습니다.

또한 전역범위 (global scope)를 갖고 있습니다.

  • 브라우저 환경 : window
  • Node.js 환경 : global
  • 그 외 호스트 환경 : globalThis (표준화)

브라우저에서 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 에 접근하여 얻은 값입니다. 두 출력은 모두 동일한 값을 가지므로, 전역 객체와 전역 변수는 밀접한 관계를 가지고 있다는 것을 알 수 있습니다.

profile
감자

0개의 댓글