-
[데일리 과제] 4월 3일카테고리 없음 2023. 4. 3. 13:42
1. require와 import 차이점을 설명해주세요. 각각 어떤 상황에서 쓸 수 있나요?
require() CommonJS를 사용하는node.js문이지만 import()는 ES6에서만 사용됩니다.
require()는 파일 (어휘가 아님)에 들어있는 곳에 남아 있으며import()는 항상 맨 위로 이동합니다.
require()는 프로그램의 어느 지점에서나 호출 할 수 있지만 import()는 파일의 시작 부분에서만 실행할 수 있습니다.
마지막으로 require()문을 사용하는 모든 파일은.js파일로 저장되는 반면 import()가있는 파일은.mjs파일로만 저장할 수 있습니다.
일반적으로 import()는 사용자가 필요한 모듈 부분 만 선택하고로드 할 수 있기 때문에 더 선호됩니다. require()보다 성능이 우수하며 메모리를 절약합니다.
최근 ES6(ES2015) 모듈 시스템인 import가 많이 사용되고 있지만, 아직까지는 import 키워드가 100% 대체되어 사용될 수 없습니다. <script> 태그를 사용하는 브라우저 환경과, NodeJS에서도 CommonJS를 기본 모듈 시스템으로 채택하고 있기 때문에, Babel과 같은 ES6 코드를 변환(transpile)해주는 도구를 사용할 수 없는 경우에는 require 키워드를 사용해야 합니다.
2. 배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해서 설명해주세요.
- 배열, 객체는 참조값
참조값은 변수에 주소를 할당합니다..
따라서 const 변수에는 주소만 할당되어있습니다.
stack에는 주소만 저장됐고, heap에 실제 요소들이 저장되어있습니다.
실제 배열 요소들은 push나 pop으로 변경이 가능하고
참조된 주소는 변경되지 않으므로 const사용이 가능한 것입니다. - 배열, 객체는 참조값