TIL : 23.05.15

jin·2023년 5월 15일
0

TIL

목록 보기
36/39
post-thumbnail

23.05.08~ / 취업준비_이력서 스터디, 데일리 과제

Q. require와 import의 차이점

둘다 외부의 파일이나 라이브러리의 코드를 불러온다는 같은 목적을 가지고 있지만,
require는 NodeJS에서 사용되고 있는 CommonJS 키워드이고 Ruby 언어 스타일과 비슷하다라고 볼수 있다.

import는 ES6(ES2015)에서 새롭게 도입된 키워드로서 Java나 Python 언어 방식과 비슷하다.

각각의 선언방법은 다음과 같다.

/* CommonJS  */
const name = require('./module.js');
-
/* ES6 */
import name from './module.js'

주요 차이점
1. require는 CommonJS를 사용하는 node.js문이지만 import는 ES6에서만 사용한다.
2. require는 프로그램의 어느 지점에서나 호출가능하지만 import는 예외를 제외하곤, 파일의 시작 부분에서만 실행할 수 있다.
3. 일반적으로 import는 사용자가 필요한 모듈 부분만 선택하고 로드 할 수 있기 때문에 더 선호된다. 또한 require보다 성능이 우수하며 메모리를 절약한다.

Q. 배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유

const는 변하지 않는 상수를 선언하는 키워드이며, 이 상수의 값을 재할당이나 재선언이 불가하다.
하지만 배열이나 객체의 경우 참조자료형에 해당하며 참조값을 변수에 주소를 할당한다. 따라서 숫자나 문자열과 같은 원시 자료형stack 영역에 값 자체가 저장되지만 배열, 객체, 함수와 같은 참조 자료형은 heap 영역에 값이 저장되고, stack에는 heap영역의 주소값만 저장된다.

즉, 실제 heap에 저장된 요소를 변경하더라도 참조된 주소를 변하지않기 때문에 const를 사용할 수 있는 셈이다.

profile
。˚⋆。˚ ☁︎˚。⋆。˚☽˚。⋆˚ ☁︎˚

0개의 댓글