CS
require와 import차이점을 설명해주세요. 각각 어떤 상황에서 쓸 수 있나요?
require와 import의 차이점
- 문법이 다르다.
- require()는 CommonJS를 사용하는 node.js문. 반면 import()는 ES6에서만 사용한다.
- require()는 파일에 들어있는 곳에 남아 있으며, import()는 항상 파일 맨 위로 이동
- require()는 프로그램 어느 지점에서나 호출 가능. import()는 파일의 시작 부분에서만 실행할 수 있음.
- 하나의 프로그램에서 두 키워드를 동시에 사용할 수 없다.
- import()는 사용자가 필요한 모듈 부분만 선택하고 불러올 수 있다.
위와 같은 이유로 import()가 require()보다 성능이 우수하며 메모리를 절약할 수 있다.
어떤 상황에서 각각 쓰이는가?
require()
- Babel과 같은 ES6 코드를 변환해주는 도구(babel 등)를 사용할 수 없는 경우에 사용.
import()
- ES6 코드를 변환해주는 도구가 프로젝트에서 사용된다면, import()를 사용하는 것이 좋음.
배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해서 설명해주세요
배열과 객체는 참조자료형.
데이터는 Heap에 저장되고, 변수에는 Address가 담긴다.
Address를 참조해 값을 가져오는 것임.
배열이나 객체에 데이터를 추가하는 것은 상수를 재할당하거나 재선언하는 것이 아니라, 주소가 가리키는 목록에 추가하는 것이기 때문에 요소나 속성을 추가, 삭제 할 수 있다.