될때까지

노드 내장 객체 알아보기(global, console, timer, __filename, __dirname, this, require) 본문

학습/Node.js

노드 내장 객체 알아보기(global, console, timer, __filename, __dirname, this, require)

랖니 2022. 8. 21. 15:53
728x90

1. global

  • 노드의 전역 객체
  • 브라우저의 window같은 역할
  • 모든 파일에서 접근이 가능하다
  • window처럼 생략도 가능하다(console, require도 global의 속성이다)
  • global속성에 값을 대입하면 다른 파일에서도 사용이 가능하다.

 

2. console 객체

  • 브라우저의 console객체와 매우 유사하다.
  • console.time() ~ console.timeEnd() : 시간 로깅(코드 수행시간을 찍어준다)
  • console.error() : 에러 로깅
  • console.log() : 평범한 로그
  • console.dir() : 객체 로깅
  • console.trace() : 호출 스택 로깅

 

3. 타이머 메서드

  • set메서드에 clear메서드가 대응됨(취소하려면 변수에 저장을 해야한다!!)
  • set메서드의 리턴값을 clear메소드에 넣어 취소
  • setTimeout(콜백함수, 밀리초) : 주어진 밀리초이후에 콜백함수를 실행한다.
  • setInterval(콜백함수, 밀리초) : 주어진 밀리초마다 콜백함수를 반복 실행한다.
  • setImmediate(콜백함수) : 콜백함수를 즉시 실행한다.

--> setTimeout / setInterval / setImmediate 은 백그라운드로 실행을 넘겨 동시실행시킬 수 있는 비동기 코드다.

  • clearTimeout(아이디) : setTimeout을 취소한다.
  • clearInterval(아이디) : setInterval을 취소한다.
  • clearImmediate(아이디) : setImmediate를 취소한다.
const interval = setInterval(() => {
    console.log('1초마다 실행');
}, 1000);

setTimeout(() => {
    clearInterval(interval);
}, 2500);

 

4. __filename, __dirname

  • __filename : 현재 파일 경로
  • __dirname : 현재폴더(디렉토리)경로

 

5. this

  • 최상위 스코프의 this는 module.exports를 가리킨다.
  • 함수 선언문 내부의 this는 global 객체를 가리킨다.
console.log(this);    // {} 반환

console.log(this === module.exports);   // true

function whatIsThis() {
    console.log('function', this === exports, this === global);  // function false true
}

whatIsThis();

 

6. require

  • 다른 파일을 실행만 하고 싶다, 변수로 저장해 사용하고 싶지 않을때는 require만 하면 된다.
  • 하드디스크에서 읽어서 메모리에 저장해두는 걸 캐싱이라고 한다. 하드디스크는 멀고 메모리는 가까워서 빠르다.
  • require가 제일 맨 위에 올 필요는 없고 require.cache에 한번 require한 모듈에 대한 캐싱 정보가 들어있다.
728x90

'학습 > Node.js' 카테고리의 다른 글

os와 path  (0) 2022.08.21
process  (0) 2022.08.21
모듈 만들기  (0) 2022.08.21
REPL 사용하기, JS파일 실행하기  (0) 2022.08.21
Promise, async/await  (0) 2022.08.21