Archive

[3] Global Object

livemehere 2022. 3. 21. 03:15

우리가 코드를 작성하는 부분은 항상 최상위 객체 내에서 작성되는 것입니다.

node의 경우에는 global 이라는 객체이고

Browser 환경에서는 window 라는 객체입니다.

같은 맥락이지만, 조금은 다른데요.

예를들자면, 브라우저환경에서는 WebAPIs (navigator, getUserMedia, location ..)가 제공되고 
node 환경에서는 Node APIs(File, http ...등)가 제공됩니다
이 제공됩니다.


이렇게 let, const, var 없이 어떤 변수나,함수를 선언하면 어떻게될까요?

에러가나나요? 아니죠! 우리는 객체의 환경에있기 때문에 global의 property로 정의한것입니다.

hello ='kong';
console.log(hello) // kong
console.log(global.hello) // kong

Global console 출력

<ref *1> Object [global] {
  global: [Circular *1],
  clearInterval: [Function: clearInterval],
  clearTimeout: [Function: clearTimeout],
  setInterval: [Function: setInterval],
  setTimeout: [Function: setTimeout] {
    [Symbol(nodejs.util.promisify.custom)]: [Getter]
  },
  queueMicrotask: [Function: queueMicrotask],
  performance: Performance {
    nodeTiming: PerformanceNodeTiming {
      name: 'node',
      entryType: 'node',
      startTime: 0,
      duration: 71.4465399980545,
      nodeStart: 6.144389033317566,
      v8Start: 7.530765056610107,
      bootstrapComplete: 61.38393199443817,
      environment: 30.390879034996033,
      loopStart: -1,
      loopExit: -1,
      idleTime: 0
    },
    timeOrigin: 1647799389442.7
  },
  clearImmediate: [Function: clearImmediate],
  setImmediate: [Function: setImmediate] {
    [Symbol(nodejs.util.promisify.custom)]: [Getter]
  },
  hello: 'kong' # 여기 추가된 모습
}

공식문서 Global 객체 목록

반응형