프로그래밍/JavaScript

[JS] 호스트 객체와 네이티브 객체의 차이점

mhko411 2021. 11. 1. 23:12
728x90

자바스크립트의 객체를 사용할 때 언제 사용할 수 있는 객체인지 아니면 환경에 제약없이 사용할 수 있는 함수인지를 파악하고 있어야 한다.


네이티브 객체

네이티브 객체는 ECMAScript 명세에 정의된 객체를 말하며 애플리케이션의 환경과 관계없이 항상 사용할 수 있다. 아래의 객체들은 모두 네이티브 객체가 된다.

  • Object() 생성자 함수
  • Function 객체
  • Boolean, Number, String, Array
  • Math, Date, Error, RegExp
  • Symbol

호스트 객체

호스트 객체는 런타임 환경에 따라 정의된 객체를 의미한다. 즉 브라우저와 Node.js 환경에서 사용되는 객체가 다르다는 것이다. 

 

전역 객체

전역 객체는 모든 객체의 유일한 최상위 객체를 의미한다. 브라우저에서는 window, Node.js와 같은 서버 사이드 환경에서는 global 객체가 전역 객체가 된다.

 

BOM(Browser Object Model)

브라우저 객체 모델은 브라우저의 탭 또는 창의 모델을 생성한다. 최상위 객체는 window 객체로 현재 브라우저 창 또는 탭을 표현하는 객체이다. window.document는 현재 로드된 페이지를 의미하며, window.location은 현재 페이지의 URL을 의미한다.

 

DOM(Document Object Model)

문서 객체 모델은 현재 웹 페이지의 모델을 생성한다. 최상위 객체는 document 객체로 전체 문서를 표현한다.


정리

  • 환경에 관계없이 사용할 수 있는 네이티브 객체를 파악하고 사용할 수 있어야한다.
  • 자바스크립트가 실행되는 환경에서 사용할 수 있는 객체를 파악하고 사용할 수 있어야한다.