9/24 Node.js 학습

이경화·2023년 9월 24일
0

Node.js 학습

목록 보기
2/4

노드, VS code 설치하기


Q&A

실행 컨테스트, 이벤트루트, 프로토타입 3가지가 자바스크립트에서 제일 중요하다.


REPL과 js 파일 실행하기

자바스크립트는 스크립트 언어라서 즉석에서 코드를 실행할 수 있다

  • REPL이라는 콘솔 제공
  • R(Read), E(Evaluate), P(print), L(Loop)
  • 윈도에서는 명령 프롬프트, 맥이나 리눅스에는 터미널에 node 입력

CMD에 ‘node’ 치면 노드로 진입한다.
control+c or control+d or .exit 치면 나온다.


CommonJS 모듈 시스템(브라우저에서는 못 써요)

module.exports = { 변수1, 변수2, };

  • 선언된 변수를 다른 파일에서도 사용할 수 있게 해준다.
  • module.exports는 파일에서 한 번만 사용하여야 한다.

const 변수명 = require(’./파일명’);

  • ./ : 현재 내가 있는 폴더
  • ../ : 부모 폴더
  • ../../ : 조부모 폴더

exports, this, require, 순환참조

exports

  • module은 생략가능하다.
  • module.exports === exports === {},
    기본적으로는 빈 객체이다.
  • exports.를 쓰면 module.exports를 쓰면 안된다. (쓰면 참조관계가 끊긴다.)

exports.odd = odd;
exports.even = even;

or

module.exports = {
odd,
even
}

this
스코프? 변수의 유효범위
전역스코프? 전역에 선언되어 있어서 어느 곳에서든 해당 변수에 접근 가능하다.

  • 전역스코프의 this만 빈 개체(module.exports)가 된다.
    console.log(this === module.exports === {} === exports)
  • function마다 this가 새로 생긴다.
  • 화살표 함수 쓰면 부모의 this를 물려 받는다.

require

  • 다른 파일을 실행만 하고 싶다. 다른 파일의 변수를 가지고 오기는 싫다. 할때 사용한다

  • require는 코드의 순서와 상관이 없다.

  • require은 모듈이다.

  • extensions : 확장자

  • require.main : 어떤 파일을 실행한건지 알아낼 수 있다.

  • require.cache : 한 번 require로 불러온 파일을 require.chche에 저장해둔다. 그래서 두번째 불러올때부터는 메모리에 저장해두었기 때문에 빠르다.

순환참조
서로 호출하는 상황이 생기면 무한반복되기 때문에 컴퓨터가 멈춘다.(순환참조)
이 상황을 방지하기 위해 node가 빈 객체로 바꾼다.

0개의 댓글