1. JS 실행 환경

원래는 웹브라우저 환경에서 사용하려는 목적으로 만들어졌으나 시간이 지나면서 사용 가능한 환경이 확장됨


1-1. 호스트와 호스트 환경

  1. 호스트

    1. 자바스크립트가 돌아가는 플랫폼
    2. JS 가 실행되는 방식이나 상호작용하는 시스템이 달라짐
  2. 호스트 환경

    1. 각 플랫폼 마다 제공하는 특정 기능(객체, 함수)
    환경 실행 주체 제공 기능
    웹 브라우저 브라우저 엔진 (V8, spider monkey 등) DOM 조작, 이벤트 관리, fetch API
    서버 Node.js 런타임 (V8 기반) 파일 시스템 접근(fs), 네트워크 기능 (http)
    모바일 JavaScript 엔진 (Hermes, JSC) 네이티브 모듈 (카메라, 위치정보 등)

2. 웹 브라우저 호스트 환경

웹브라우저가 제공하는 API


2-1. 제공하는 API

  1. DOM (Document Object Model)
    1. 자바스크립트 코드의 전역 객체
    2. 웹 페이지의 모든 콘텐츠를 노드로 나타냄
    3. 페이지 내 무엇이든 변경
    4. 원하는 것을 생성할 때 사용됨
    5. 브라우저만을 위한 모델은 아님, 서버에서도 제한되지만 사용됨
    6. 명세 읽어보기
  2. BOM (Browser Object Model)
    1. 브라우저 창을 대변
    2. 이를 제어할 수 있는 메서드 제공
    3. 문서 (html document)를 제외한 모든 것을 제어하기 위해 브라우저가 제공하는 추가 객체
    4. 명세 읽어보기
    5. ex)
      • navigator
      • screen
      • location
      • history
      • frames:
        • iframe을 포함한 모든 프레임을 나타냄
        • 웹 페이지 내부에 다른 html 문서를 포함하기 위한 기능
      • XMLHttpRequest
        • AJAX 요청을 보낼수 있는 객체
        • 요새는 fetch로 대체됨
  3. JS
    1. ex)
      1. Object
      2. Array
      3. Function
    2. 명세 읽어보기
  4. CSSOM
    1. DOM과 함께 스타일 규칙을 수정할 때 사용됨

3. DOM Tree

웹브라우저 환경에서 제공하는 API 중 첫 번째


3-1. 개념 및 특징