더북(TheBook)

3.4.1 global

먼저 global 객체입니다. 브라우저의 window와 같은 전역 객체이며, 전역 객체이므로 모든 파일에서 접근할 수 있습니다. 또한, window.open 메서드를 그냥 open으로 호출할 수 있는 것처럼 global도 생략할 수 있습니다. 이전 절에서 사용했던 require 함수도 global.require에서 global이 생략된 것입니다. 노드 콘솔에 로그를 기록하는 console 객체도 원래는 global.console입니다.

global 객체 내부에는 매우 많은 속성이 들어 있습니다. 이 절에서 배울 내용들은 global 객체 안에 있으며, 내부를 보려면 REPL을 이용해야 합니다.

Note ≣ window, document 객체와 globalThis

노드에는 DOM이나 BOM이 없어 windowdocument 객체를 노드에서 사용할 수 없습니다. 노드에서 window 또는 document를 사용하면 에러가 발생합니다. 따라서 이 둘을 아우르는 globalThis 객체가 만들어졌습니다. 브라우저 환경에서는 globalThis가 저절로 window가 되고, 노드에서는 globalThis가 저절로 global이 됩니다.

콘솔

$ node
> global
{
  global: [Circular *1],
  clearInterval: [Function: clearInterval],
  clearTimeout: [Function: clearTimeout],
  ...
}
> globalThis
{
  global: [Circular *1],
  clearInterval: [Function: clearInterval],
  clearTimeout: [Function: clearTimeout],
  ...
}
> globalThis === global
true
> global.console
{
  log: [Function: log],
  warn: [Function: warn],
  dir: [Function: dir],
  ...
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.