Blog

1장 자바스크립트란 무엇인가

March 20, 2014

1장 자바스크립트란 무엇인가

이 글은 자바스크립트 제대로 배우기 스터디 그룹의 활동으로 «프론트엔드 개발자를 위한 자바스크립트»(2013 인사이트, 한선용 옮김)에서 요약한 글임을 밝힙니다.

자바스크립트란 무엇인가

1995년 입력 유효성 검사를 목적으로 등장 (서버 대신 브라우저에서), 지금은 단순한 유효성 검사에 국한되지 않고 브라우저 창과 그 콘텐츠의 거의 모든 부분과 상호작용하며, 이제 클로저나 익명(람다) 함수, 심지어 메타프로그래밍까지 처리하며 복잡한 계산과 상호작용을 수행하는 완전한 프로그래밍 언어가 됨

역사

넷스케이프에서 처음 만들었으나 마이크로소프트에서 독자적으로 JScript를 구현, 그래서 표준을 위해 ECMAScript(“에크마스크립트”)를 정의

구현

코어 (ECMAScript) + 문서 객체 모델 (DOM) + 브라우저 객체 모델 (BOM)

  1. ECMAScript

    • 기반 언어 / 웹 브라우저는 ECMAScript를 구현하는 ‘호스팅 환경(인터페이스 구실 / 확장 제공)’
    • 문법, 타입, 선언문, 키워드, 예약어, 연산자, 객체를 정의
    • 버전을 ‘판’이라고 부르며 최근판은 2009년에 만들어진 5판 (JSON 데이터를 파싱/직렬화하는 네이티브 JSON 객체, 상속과 고급 프로퍼티 정의에 쓰이는 메서드, 일부 확장된 스트릭트 모드)
  2. 문서 객체 모델

    • XML을 HTML에서 사용할 수 있도록 확장한 애플리케이션 프로그래밍 인터페이스
    • 전체 페이지를 노드의 계층 구조로 변환 / 문서를 표현하는 트리를 만들고 각 노드를 쉽게 제거하고, 추가하고, 고체하고, 수정할 수 있게 API 제공
    • 다양한 DOM 레벨(1, 2, 3)이 있고 브라우저마다 지원하는 정도가 다름
  3. 브라우저 객체 모델

    • 브라우저 창에 접근하고 조작할 수 있게 하는 인터페이스
    • 브라우저에 표시된 페이지와 별개의 컨텍스트에서 브라우저와 상호작용을 할 수 있음
    • HTML5에서 BOM을 공식 명세의 일부로 표준화
    • 새창 띄우기 / 창 크기 조절 / navigator 객체 / location 객체 / screen 객체 / 쿠키 지원 / XMLHttpRequest, ActiveXObject와 같은 커스텀 객체

버전

최신 버전은 1.8.6이며 현재로서는 자바스크립트 2.0이라 부를 만한 구현이 존재하지 않음

요약

자바스크립트는 웹 페이지와 상호작용하도록 디자인된 스크립트 언어이며 ECMAScript(핵심 기능을 제공), DOM(웹 페이지 콘텐츠를 조작하는 메서드와 인터페이스를 제공), BOM(브라우저와 상호작용하는 메서드와 인터페이스를 제공)으로 구성.