프로그래밍의 효율을 극대하게 높여주는 **내장 객체(Built-in Objects)**에 대해 알아보겠습니다.
내장 객체는 자바스크립트 엔진에 이미 포함되어 있어, 우리가 별도의 설치 없이 언제든 꺼내 쓸 수 있는 강력한 도구 상자와 같습니다.
📘 1. Array 객체 (배열을 다루는 객체)
데이터를 순서대로 나열하여 저장하고 관리할 때 사용합니다. 자바스크립트에서 가장 빈번하게 사용되는 객체 중 하나입니다.
- 주요 메서드:
- push() / pop(): 배열의 맨 뒤에 요소를 추가하거나 제거합니다.
- shift() / unshift(): 배열의 맨 앞에 요소를 추가하거나 제거합니다.
- forEach(): 배열의 각 요소를 순회하며 함수를 실행합니다.
- map(): 배열의 요소를 변경하여 새로운 배열을 만듭니다.
- filter(): 조건에 맞는 요소만 골라내어 새로운 배열을 만듭니다.
📘 2. Math 객체 (수학 계산을 돕는 객체)
복잡한 수학적 연산이나 상수를 다룰 때 사용합니다. 다른 객체와 달리 new 연산자로 인스턴스를 만들지 않고 바로 사용합니다.
- 주요 메서드:
- Math.abs(): 절대값을 반환합니다.
- Math.round(): 소수점 첫째 자리에서 반올림합니다.
- Math.ceil() / Math.floor(): 소수점을 무조건 올림하거나 내림합니다.
- Math.random(): 0과 1 사이의 난수(랜덤 숫자)를 발생시킵니다.
- Math.max() / Math.min(): 여러 숫자 중 최댓값 또는 최솟값을 찾습니다.
📘 3. Date 객체 (날짜와 시간을 다루는 객체)
날짜를 계산하거나 현재 시간을 화면에 표시할 때 사용합니다.
- 주요 메서드:
- getFullYear(): 연도를 4자리로 가져옵니다.
- getMonth(): 월을 가져옵니다. (0부터 시작하므로 주의! 0=1월, 11=12월)
- getDate(): 일(날짜)을 가져옵니다.
- getDay(): 요일을 가져옵니다. (0=일요일, 6=토요일)
- getTime(): 1970년 1월 1일 이후의 밀리초를 반환합니다. (두 날짜 사이의 차이를 계산할 때 유용)
📘 4. String 객체 (문자열을 다루는 객체)
텍스트 데이터를 처리하고 가공할 때 사용합니다.
- 주요 메서드:
- indexOf(): 특정 문자가 시작되는 위치(인덱스)를 찾습니다.
- includes(): 특정 문자가 포함되어 있는지 여부를 확인합니다.
- substring(): 문자열의 일부분을 잘라냅니다.
- replace(): 특정 문자를 다른 문자로 바꿉니다.
- split(): 특정 구분자를 기준으로 문자열을 잘라 배열로 만듭니다.
📘 5. JSON 객체 (데이터 전송을 위한 객체)
네트워크를 통해 데이터를 주고받을 때 표준 형식인 JSON 문자열과 자바스크립트 객체 사이의 변환을 담당합니다.
- 주요 메서드:
- JSON.stringify(): 자바스크립트 객체를 JSON 형태의 문자열로 변환합니다. (서버로 보낼 때)
- JSON.parse(): JSON 문자열을 자바스크립트 객체로 변환합니다. (서버에서 받았을 때)
오늘의 요약
- 데이터 묶음은 Array, 수학 계산은 **Math**에게 맡기세요.
- 시간 정보는 Date, 텍스트 가공은 String 객체가 담당합니다.
- 서버와 데이터를 주고받을 땐 JSON 객체가 필수적인 가교 역할을 합니다.
자바스크립트의 핵심 무기인 내장 객체들을 모두 살펴보았습니다!
이제 이 도구들을 활용해 더 복잡한 로직을 짤 준비가 되셨습니다.
Array, Math, Date 객체의 주요 메서드를 활용한 핵심 예제 코드를 정리해 드릴게요.
각 예제는 일상적인 프로그래밍 상황을 가정하여 작성되었습니다.
📘 1. Array 객체 주요 메서드 예제
배열은 데이터를 관리하는 가장 강력한 도구입니다.
JavaScript
// 1. 기본 배열 생성
const fruits = ["사과", "바나나", "오렌지"];
// 2. push() / pop() : 맨 뒤 요소 추가 및 제거
fruits.push("포도"); // ["사과", "바나나", "오렌지", "포도"]
const lastItem = fruits.pop(); // "포도" 제거
// 3. forEach() : 배열 순회 (단순 반복)
fruits.forEach((item, index) => {
console.log(`${index + 1}번 과일: ${item}`);
});
// 4. filter() : 조건에 맞는 요소만 골라내기 (새 배열 반환)
const numbers = [1, 5, 8, 12, 3];
const bigNumbers = numbers.filter(num => num > 5);
// 결과: [8, 12]
// 5. map() : 요소를 일괄적으로 가공하기 (새 배열 반환)
const doubled = numbers.map(num => num * 2);
// 결과: [2, 10, 16, 24, 6]
📘 2. Math 객체 주요 메서드 예제
수학 계산 객체는 new 키워드 없이 바로 사용하는 것이 특징입니다.
JavaScript
// 1. 소수점 처리 (반올림, 올림, 내림)
const pi = 3.14159;
console.log(Math.round(pi)); // 3 (반올림)
console.log(Math.ceil(pi)); // 4 (무조건 올림)
console.log(Math.floor(pi)); // 3 (무조건 내림)
// 2. 최댓값과 최솟값 찾기
const maxNum = Math.max(10, 50, 20, 5); // 50
const minNum = Math.min(10, 50, 20, 5); // 5
// 3. 랜덤 숫자(난수) 생성 (응용: 1~10 사이의 정수 만들기)
// Math.random()은 0 이상 1 미만의 실수를 반환함
const randomInt = Math.floor(Math.random() * 10) + 1;
console.log(`생성된 난수: ${randomInt}`);
// 4. 절대값 구기
console.log(Math.abs(-15)); // 15
📘 3. Date 객체 주요 메서드 예제
날짜와 시간은 인스턴스를 생성(new Date())하여 현재 시점을 먼저 잡아야 합니다.
JavaScript
// 1. 현재 날짜와 시간 인스턴스 생성
const now = new Date();
// 2. 연, 월, 일 정보 가져오기
const year = now.getFullYear(); // 2026
const month = now.getMonth() + 1; // 0부터 시작하므로 +1 필수 (2)
const date = now.getDate(); // 15
const day = now.getDay(); // 요일 (0:일, 1:월 ... 6:토)
console.log(`오늘은 ${year}년 ${month}월 ${date}일입니다.`);
// 3. 특정 날짜 설정하기 (예: 2025년 크리스마스)
const xmas = new Date(2025, 11, 25); // 월은 0부터 시작하므로 11이 12월
// 4. 시간 차이 계산하기 (밀리초 단위 활용)
const diff = xmas.getTime() - now.getTime();
const dDay = Math.ceil(diff / (1000 * 60 * 60 * 24)); // 밀리초를 일 단위로 환산
console.log(`크리스마스까지 ${dDay}일 남았습니다.`);
교재용 포인트
- Array: 원본을 바꾸는 메서드(push)와 새 배열을 만드는 메서드(filter, map)를 구분하는 것이 중요합니다.
- Math: 인스턴스를 만들지 않는 정적(Static) 객체임을 강조해 주세요.
- Date: getMonth()가 0부터 시작한다는 점은 가장 자주 실수하는 부분입니다.
이 예제들은 기초 문법을 배운 뒤 바로 응용해 보기 아주 좋습니다.

'JavaScript' 카테고리의 다른 글
| Variables scope and hoisting (0) | 2026.02.14 |
|---|---|
| Object (0) | 2026.02.14 |
| BOM (0) | 2026.02.14 |
| DOM (0) | 2026.02.14 |
| DOM Selection and Manipulation (0) | 2026.02.14 |