자바스크립트에서 네이티브 객체와 호스트 객체는 자바스크립트 환경에서 객체가 어디에서 기원했는지에 따라 구분되는 두 가지 객체 유형이다.
window
, Server-side(Node.js)에서는 global
객체를 의미한다.주요 네이티브 객체 예시
- Object: 모든 객체의 상위 객체로, 자바스크립트에서 모든 객체는 Object를 상속받는다.
- Array: 배열을 다루는 객체로, 배열의 길이를 확인하거나 항목을 추가/삭제하는 기능을 제공한다.
- String: 문자열을 다루는 객체로, 문자열의 길이를 확인하거나 문자열 조작 기능을 제공한다.
- Number: 숫자를 다루는 객체로, 숫자 연산 및 기타 숫자 관련 기능을 제공한다.
- Boolean: 불리언 값을 다루는 객체로, 참(
true
) 또는 거짓(false
)의 논리값을 처리한다.- Date: 날짜와 시간을 다루는 객체로, 현재 시간, 과거/미래 날짜 등을 다룰 수 있다.
- RegExp: 정규 표현식을 다루는 객체로, 문자열에서 패턴 매칭 작업을 처리할 수 있다.
- Promise: 비동기 작업을 다루는 객체로, 작업이 완료되었을 때 결과를 처리할 수 있도록 도와준다.
- Math: 자바스크립트에서 수학 관련 기능을 제공하는 네이티브 객체로, 생성자 함수가 아닌 정적 메서드와 속성들만 가지고 있다. 수학적 계산, 상수, 함수 등을 활용할 수 있다.
- Error: 자바스크립트에서 오류를 처리하고 디버깅할 수 있게 도와주는 객체로, 코드 실행 중에 발생한 오류를 나타낸다.
Error
객체는 일반 오류뿐만 아니라 특정 유형의 오류를 나타내는 여러 서브클래스(TypeError
,ReferenceError
,SyntaxError
,RangeError
,EvalError
등)도 포함하고 있다.- Map: 키-값 쌍을 저장하고, 각 쌍의 삽입 순서를 기억하는 자바스크립트 네이티브 객체이다. 객체와 달리
Map
은 키로 모든 데이터 유형을 허용하며,iterable
로 순회할 수 있습니다.- Set: 값의 컬렉션을 저장하는 네이티브 객체로, 각 값은 한 번만 저장될 수 있다.(중복된 값이 허용되지 않음).
Set
은 iterable로 순회가 가능하며, 삽입 순서를 유지한다.
주요 호스트 객체 예시 (브라우저 환경)
- window: 브라우저의 전역 객체로, 현재 웹 페이지의 창(window)을 나타낸다.
- document: 현재 웹 페이지의 DOM(Document Object Model)을 나타내는 객체로, HTML 문서를 조작할 수 있다.
- navigator: 브라우저 정보를 제공하는 객체로, 브라우저의 이름, 버전, 사용자 에이전트 등을 확인할 수 있다.
- XMLHttpRequest: 서버와 비동기적으로 데이터를 주고받을 수 있게 해주는 객체로, AJAX 요청을 처리할 때 사용된다.
- localStorage / sessionStorage: 웹 브라우저에 데이터를 로컬에 저장할 수 있는 객체들이다.
주요 호스트 객체 예시 (Node.js 환경)
- process: 현재 실행 중인 Node.js 프로세스에 대한 정보를 제공하는 객체로, 환경 변수에 접근하거나 프로세스를 종료하는 등의 작업을 할 수 있다.
- fs: 파일 시스템과 상호작용할 수 있는 객체로, 파일을 읽고 쓰는 등의 작업을 할 수 있다.
- http: HTTP 서버나 클라이언트를 만들 수 있는 객체로, 네트워크 요청을 처리할 수 있다.