자바스크립트가 돌아가는 플랫폼을 호스트(host)라고 부른다.
각 플랫폼마다 특정한 기능을 제공하는데, 이를 호스트 환경(host environment)이라고 한다.
아래 그림과 같이, JavaScript 랭귀지 코어를 기반으로 플랫폼에서 객체와 함수를 추가로 제공한다.
브라우저는 웹페이지를 제어하기 위한 DOM과 같은 수단을 제공하고, Node.js는 서버 사이드 기능을 제공한다.

자바스크립트 언어 최상단에는 루트 객체 window가 존재한다.
function sayHi() {
alert('안녕하세요!');
}
window.sayHi(); // 전역 함수는 전역 객체 window의 메서드
alert(window.innerHeight); // 브라우저 윈도우의 내부 높이
문서 객체 모델(Document Object Model)은 웹 페이지 내의 모든 콘텐츠를 객체로 나타낸다.
document 객체는 페이지의 진입점 역할을 한다.
document.body.style.background = 'yellow'; // 배경을 노란색으로 변경한다.
브라우저 객체 모델(Browser Object Model)은 문서 이외의 모든 것들을 제어하기 위해 호스트 환경(브라우저)이 제공하는 추가 객체이다.
navigator 객체: 브라우저와 운영체제에 대한 정보를 제공한다.// 현재 사용 중인 브라우저 정보
navigator.userAgent;
// 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.207 Whale/3.17.145.18 Safari/537.36'
// 브라우저가 실행 중인 운영체제 정보
navigator.platform;
// 'MacIntel'location 객체: 현재 URL을 읽고 변경(redirect)할 수 있게 한다.console.log(location.href); // 현재 주소를 반환
location.href = 'https://wikipedia.org'; // 새로운 주소로 이동alert, confirm, prompt 등 사용자와 브라우저 사이의 커뮤니케이션을 도와주는 브라우저 메서드가 존재한다.