require
와import
는 외부 파일이나 라이브러리를 불러올 때 사용한다는 같은 목적을 가지고 있지만,다른 문법구조
를 가지고 있다.
require
는 exports와 함께 사용되며 어느 지점에서나 호출 할 수 있고 동기적이다. NodeJS에서 사용되는 CommonJS의 키워드이다.
import
export와 함께 사용되며 파일의 시작 부분에서만 실행 할 수 있고 비동기적이다.
ES6에서 새롭게 도입된 키워드이댜.
require
은Babel
과 같은 ES6코드를 변환해주는 도구를 사용할 수 없는 상황에서 사용한다.
import
은 JavaScript를 사용 중이거나 ES6 모듈에 대한 액세스 권한이 있는 경우에 사용한다.
바벨이란 ES6+버전의 자바스크립트, 타입스크립트, JSX 등 다른 언어로 분류되는 언어들에 대해 모든 브라우저에서 동작할 수 있도록 호환시켜주는 툴입니다.
바벨은 최신 문법을 이전세대 문법으로 호환시켜주는 기능이 있는데 그 중 하나가 JSX문법입니다
. JSX를 ES5 코드로 바꿔 브라우저에 작동할 수 있도록 하여 리액트에서 바벨이 사용된다.
// exports
const name = '호두';
module.exports = name;
// require
const name = require('./module.js');
// export
const name = '호두';
export default name;
// import
import name from './module.js'
배열이나 객체가
const
로 선언되면 변수가 배열이나 객체가 저장된고정된 메모리 위치
가리킨다는 의미입니다.
배열 또는 개체에 대한참조는 변경할 수 없지만
배열또는 개체 내의요소
또는속성
은 여전히 수정할 수 있습니다.
push() 메서드
는 배열 끝에 새 요소를 추가하는 데 사용된다.변수의 재할당만 제한
하고 그 내용은 제한하지 않기 때문에 허용된다.const arr = [1, 2, 3];
arr.push(4);
console.log(arr); // Output: [1, 2, 3, 4]
const obj = {a: 1, b: 2};
obj.c = 3;
console.log(obj); // Output: {a: 1, b: 2, c: 3}