자바스크립트 코어 라이브러리란, 자바스크립트가 개발자를 위해 기본적으로 제공해주는 기능으로, 이 기능들을 이용하여 개발하고 개발자만의 고유 라이브러리를 만들 수 있다.
코어 라이브러리 종류
1. 타이머 함수
일정한 시간마다 특정 구문을 실행하고자 할 때 사용하는 기능이다.
※ func 일종의 콜백 함수, duration 지연 시간(단위는 밀리초)
- setInterval(func,duration) : 일정 시간마다 주기적으로 특정 구문 실행
- setTimeout(func,duration) : 일정 시간이 지난 후 특정 구문 딱 한번 실행
- clearInterval(제거할 타이머 ID) : 실행중인 타이머 함수 멈추는 기능
타이머 함수는 모두 전역 객체인 window에 포함되어 있다.
2. Math 클래스
숫자를 랜덤 생성하는 기능, sin, cos 같은 수학 관련 기능이 담겨있다.
✅ 함수(메서드) 목록 : abs(), ceil(), max(), min(), round(), random(), ...
- Math.random() : 랜덤 숫자
- Math.floor() : 숫자의 버림값 반환 (정수로 만듦)
- Math.ceil() : 올림값 반환 (ex. 게시판의 페이지 수를 구할 때 사용~)
- Math.sin() : 이미지 갤러리 제작 시 이미지 곡선따라 배치할 때~
Math 클래스는 다른 자바스크립트 코어 클래스와 달리 대부분의 기능이 클래스 메서드(정적 메서드)로 구현되어 있으므로 인스턴스 생성 없이 바로 사용할 수 있다는 장점이 있다.
3. String (중요!)
문자열을 생성하는 기능을 시작으로 문자열과 관련된 유용한 기능이 있다.
✅ 프로퍼티 : length
✅ 함수(메서드) 목록 : 

❓ 여기서 인스턴스의 의미는 객체와 통용된다. 자세히 따지자면 객체가 인스턴스와 같거나 조금 더 넓은 의미를 지니고 있다.
✔ 문자열 만들기 (2가지 방식)
- 리터럴 방식 : var str="hi";
(결과적으로는 자바스크립트에서 아래와 같이 변환되어 실행된다.)
- String 클래스의 객체를 생성해 이용 : var str=new String("hi");
slice(), substr()를 사용하여 특정 위치에 문자 추가, 특정 위치에 문자 제거 등이 가능하다!
4. Date
날짜 및 시간과 관련된 유용한 기능이 있다.
- get~ : 특정 값을 가져온다.
- set~ : 특정 값을 지정한다.

5. Array
배열을 만드는 기능부터 추가, 삭제, 찾기 등의 유용한 기능이 있다.
✅ 프로퍼티 : length (배열의 크기(개수)를 알 수 있다.)
✅ 메서드 목록 :

✔ 배열 만들기 (2가지 방식)
- 배열 리터럴 방식 : var arr=["a","b","c"];
(자바스크립트에 의해 실행되면 내부적으로 배열 클래스 방식으로 변환되어 실행된다.)
- 배열 클래스 방식 : var arr= new Array("a","b","c");
❗ 실무에서는 간결한 배열 리터럴 방식을 이용한다.
- 문자열을 배열로 만들기 : split(seperator);
- 특정 위치에 배열 요소 추가, 삭제 : splice(start,deleteCount,[element]);
start : 추가 또는 삭제할 배열 요소의 시작 위치
deleteCount : start부터 시작하여 삭제할 배열 요소의 개수 (요소 추가 시 0 적용)
element : 추가 요소