라이브러리 함수를 사용하지 않고도 배열이나 객체의 복사본을 쉽게 만들 수 있기 때문
사용하는 위치: Spread 문법은 배열이나 객체를 펼쳐서 사용하는 문법으로, 배열이나 객체 리터럴의 내부에서 사용합니다. 반면에 Rest 문법은 함수의 매개변수에서 사용하는 문법으로, 함수의 매개변수 선언에서 사용합니다.
동작 방식: Spread 문법은 배열이나 객체를 복사하거나 연결하는 등의 작업을 수행하며, 복사본을 만들어 반환합니다. Rest 문법은 함수의 매개변수로 전달된 인자들을 배열로 받아서 사용합니다.
클라이언트(브라우저 환경)에서는, 변수/함수가 전역 스코프(window)에 선언되어있는 한 모든 스크립트가 이를 참조할 수 있습니다. 또는, 보다 모듈형 접근 방식을 위해 RequireJS를 통해 비동기 모듈 정의(AMD)를 이용합니다.
서버(Node.js)에서 일반적인 방법은 CommonJS를 사용하는 것입니다. 각 파일은 모듈로 취급되며, 변수와 함수를 module.exports 객체에 붙여서 내보낼 수 있습니다.
정적 클래스 멤버는 클래스의 인스턴스를 생성하지 않고도 클래스 자체에 속한 속성이나 메서드를 호출할 수 있게 해주는 멤버
공통 데이터나 메서드를 관리하기 위해
인스턴스화 없이도 호출이 가능하므로 코드 구조가 더욱 단순해진다
클래스 레벨의 정보를 보존하기 위해
클래스의 확장성을 높이기 위해