[4/3] require와 import의 차이점, const로 선언한 객체

hare·2023년 4월 3일
0

FE-기술면접

목록 보기
5/10

require와 import차이점을 설명해주세요. 각각 어떤 상황에서 쓸 수 있나요?

  • require: CommonJS 키워드. NodeJS가 채택
    • CommonJS: 자바스크립트 언어의 활동 영역을 확장하기 위해 조직된 그룹

      require : 가져오기
      exports : 내보내기
      module.exports : 내보내기
    • module.exports 객체에 모듈 전체를 내보내고 require 를 통해 모듈을 불러오는 방식 → 불필요한 모듈 로드 가능성

  • import: ES6 키워드
    import : 가져오기
    export : 내보내기
    export defaults : 내보내기
    • 파일 시작 부분에서만 호출 가능
    • 모듈 내 정의된 특정 부분만을 불러올 수 있음 → require 에 비해 성능 우수, 메모리 절약
const example = require("example");
// 외부 파일이나 라이브러리를 불러오는 작업을 수행하는 것은 동일
import example from "example";
// import 키워드 사용하여 명시적으로 모듈을 불러옴
  • import 키워드의 한계 - <script> 태그 사용 브라우저 환경, NodeJS 환경 → 위와 같이 ES6 사양을 지원하지 않는 환경, Babel과 같은 인터프리터가 없을 때 require 사용
    • Babel: ES6코드 변환 도구

배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해서 설명해주세요

  • const 키워드: 변수의 재선언 및 재할당 불가 (배열, 객체 이외)
    • push, pop: 재할당/재선언이 아님
const arr = [1,2,3]
arr.pop()
arr[1] = 5 // [1,5]
  • 배열, 객체는 참조값을 저장하기 때문에 가능 → 주소를 할당
    • const 키워드로 배열, 객체 선언 → 배열의 포인터를 지정
    • push, pop 등의 메소드는 포인터를 변경하는 것이 아닌 메모리에 접근하여 가리키고 있는 배열, 객체를 수정하는 것
profile
해뜰날

0개의 댓글