1장. 자바스크립트란 무엇인가
< 프론트엔드 개발자를 위한 자바스크립트>(2013 인사이트, 한선용 옮김) 의 책을 요약한 내용으로 자바스크립트 제대로 배우기 스터디 그룹(페이스북) 의 글입니다.
자바스크립트의 역사
- 1995 년 처음등장 모뎀환경에서 웹 입력값의 유효성 검사위해 탄생
네스케이프의 브랜든 아이흐Breadan Eich가 처음엔 Mocha, 나중에 LiveScript라고 불린 스크립트 언어를 개발
이후 Sun이 협력하여 JavaScript1.0 이라 칭함 ( Java의 인기를 편승하기 위해서.. ^^)
네스케이프 네비게이터3에 JavaScript1.1 포함
이때 IE3출시하면서 JScript 라고 포함( 저작권 문제로 이름을 달리함)
1996년 8월 JavaScript가 본격적인 개발 시작
네스케이프와 IE 의 두가지 버젼이 존재
1997년 자바스크립트 1.1이 유럽 컴퓨터 제작자 협회( European Computer Manufacturers Association: ECMA)에 제안
ECMA 기술위원회 #39 발족
JavaScript1.1 다듬어 ECMA-262를 만듬
이 표준은 ECMAScript(“에크마스크립트”라 발음)라는 이름의 스크립트 언어를 정의
이듬해 ISO/IEC에서도 ECMAScript를 표준(ISO/IEC-16262)으로 받아들임
이때부터 브라우저제작사별로 JavaScript를 구현했지만 완성도는 제각기 다름
자바스크립트의 구현
아래 3가지로 나누어 짐
- 코어 (ECMAScript)
- 문서 객체 모델 (DOM)
- 브라우저 객체 모델 (BOM)
ECMAScript
다음 부분을 정의하고 있음.
ECMAScript의 ‘판’
판구분 |
설명 |
초판 |
네스케이프의 JavaScript 1.1과 유사하지만 브라우져 종속적인건 모두 삭제된 버젼 |
2판 |
초반의 교정본에 가까움. ISO/IEC-16262에 완전히 일치하도록 업데이트 |
3판 |
표준화를 위한 첫번째 업데이트 문자열을 다루는 방법과 에러 정의, 숫자형 출력, 정규표현식, 새로운 제어문, try-catch문 추가 |
4판 |
3판에 기초하지만 완전 개편, 변수 타입 고정가능, 새로운 선언문과 데이터 구조, 진정한 클래스와 클래스에 기반한 상속, 데이터를 조작 방법 등을 도입 |
5판 |
2009년 12월 3일 공식발표 잠재적인 모호함을 명확히 하고 새로운 기능 도입 * 새로운기능 : JSON객체, 메서드, 스트릭트 모드 |
문서 객체 모델 (DOM)
- ‘문서 객체 모델Document Object Model: DOM’ XML(HTML) 페이지 전체를 계층 구조의 다양한 타입의 node로 접근 가능한 API입니다.
- 웹페이지를 새로고침하지 않아도 웹 컨텐츠를 변경가능함.
- DOM의 브라우저별 지원은 제조사들의 우선순위의 맨위에 있으며, 판올림할때마다 좋아지고 있음.
브라우저 객체 모델 (BOM)
- Object Model(BOM) : 브라우저 창에 접근하고 제어가능한 인터페이스
- 문제점은 BOM의 표준이 존재하지 않는다는점, HTML5의 일부로 표준을 제정하고 있음.
- 8장에서 자세히.. ^^
자바스크립트 버젼
- 모질라에서 네스케이프를 계승한 까닭에 자바스크립트 버젼을 이어서 쓰고 있음.
- 브라우져별 자바스크립트 버젼체계는 다름 IE의 JScript는 다른버젼체계를 사용함.
- 브라우저에서 자바스크립트 지원을 언급할 때는 ECMAScript 표준 준수와 DOM 지원이라는 문맥에서 말하는 것이며 넷스케이프 모질라 브라우저의 자바스크립트 버전과는 상관이 없습니다.