About JavaScript

JavaScript 란 무엇인가?

JavaScript 는、Netscape가 개발한 오브젝트 스크립팅 언어로、많은 웹 페이지나 서버 애플리케이션으로 전세계에서 사용되고 있다. Netscape의 JavaScript는、ECMA-262 개정3판 (ECMAScript) 표준 스크립팅언어의 슈퍼셋(상위개념 또는 전체집합)으로、공포되어 있는 규격과 거의 차이가 없다.

흔히 있는 오해와는 반대로, JavaScript는 "인터프리터 가능한 Java" 가 아니다. 한마디로 JavaScript는 프로토타입 기반의 오브젝트 구문을 지원하는 동적인 스크립팅 언어이다. 기본적인 구문은 이 언어를 습득하기 위해 필요한 새로운 개념을 줄이기 위해 Java와 C++ 두언어와 비슷하도록 하여, if문, for, while 반복과 switch, try ... catch 블럭등의 언어요소는 같은(또는 그것과 가까운) 기능을 한다.

Javascript는 절차지향 (procedural) 언어와  객체지향 (object oriented) 언어 두가지로 기능지을 수 있다. 오브젝트는 JavaScript에서, C++ 과 Java와 같은 컴파일러형 언어에 있어서 일반적인 구문 클래스정의와 반대로, 실행시에 메소드와 프로퍼티를 그 이외로부터의 오브젝트에 더하는 것으로 프로그램에 근거해서 작성된다. 한번 오브젝트가 구축되면, 같은 오브젝트를 작성하는데도 프로토타입으로서 사용할 수 있다.

JavaScript의 동적인 성질은, 실행시의 오브젝트 구축, 가변 인수 리스트, 함수 변수, (eval 에 의한)동적 스크립트 작성, (for ... in 에 의한) 오브젝트의 내부참조, 또는 소스코드 복원 (JavaScript 의 프로그램은 함수본체를 소스텍스트에 역컴파일할 수 있다.) 을 포함하고 있다.

고유 오브젝트로는 Number, String, Boolean, Date, RegExp, 그리고 Math 가 있다.

JavaScript 프로그래밍에 관한 깊은 의논에 대해서 상세한 것은, 아래 표의 언어와 Scripting resources의 링크에서 얻을 수 있다.

어떻게 구현되어 있을까 ?

mozilla.org 는 두개의 JavaScript 구현을 호스트하고 있다. 최초로써의 JavaScript는 Netscape의 Brendan Eich가 작성하고, ECMA-262 개정3판 (JavaScript 1.5 와 같음) 에 적합하게 수정되어져왔다. 이엔진은, SpiderMonkey 라고 하는 코드네임으로, C로 구현되어져있다. Rhino 엔진은, Norris Boyd ( 이 사람도 Netscape 회원) 에 이해 작성되었으며, Java에 의해 JavaScript를 구현된다. SpiderMonkey처럼, Rhino도 ECMA-262 개정 3판에 준거한다.

mozilla.org의 각 JavaScript 엔진은, 애플리케이션이 JavaScript를 지원하기 위해 부를 수 있는 공개 API를 공개하고 있다. JavaScript 를 지원하는 가장 일반적인 호스트환경은 웹브라우저이다. 웹브라우저는 주로  DOM의 JavaScript로의 구현을 담당하는 "호스트 오브젝트" 를 작성하는데 공개 API를 사용하고 있다.

JavaScript 에 있어서 또 하나의 일반적인 애플리케이션은, (웹) 서버사이드 스크립팅 언어이다. JavaScript 를 사용하는 웹 서버에서는, 실제 HTTP 요청/응답 오브젝트를 대신하는 것으로서, 호스트 오브젝트를 다른 프로그램으로부터 보이는 형태로 두게 된다. JavaScript 프로그램은, 그 오브젝트를 조작해서 동적으로 웹 페이지를 생성할 수 있다.

JavaScript 를 당신의 애플리케이션에 삽입하는 것에서부터 상세한 정보에 대해서까지는 아래의 SpiderMonkey 나 Rhino 링크를 참조하던, netscape.public.mozilla.jseng 뉴스 그룹에서 우리를 참조하길 바란다.

JavaScript 리소스

SpiderMonkey
C 엔진의 JavaScript (SpiderMonkey 라고 불리어짐) 의 삽입에 대해서의 상세정보.
Rhino
Java 엔진의 JavaScript (Rhino 라고 불리어짐) 의 삽입에 대해서의 상세정보
Language resources
공포되고 있는 JavaScript의 표준, LiveConnect의 문서, JavaScript 2.0의 작업을 설명
A re-introduction to JavaScript
Core JavaScript 1.5 GuideCore JavaScript 1.5 Reference
Scripting resources
추천하는 읽을거리, 온라인 레퍼런스와 튜토리얼, 예제코드를 포함, JavaScript의 스크립팅 리소스를 가리킨다.
Projects page
오픈소스의 JavaScript 엔진을 사용한 다른 프로젝트 목록
Test library page
core JavaScript의 테스트에 관한 정보
mozilla.dev.tech.js-engine
netscape.public.mozilla.jseng 뉴스그룹은, JavaScript 엔진에 대해서 의논하기 위한 것이다. 브라우저 스크립팅의 문제는, mozilla.dev.tech.javascript 포럼에 보낼 수 있다.

Document Tags and Contributors

Contributors to this page: 99corps, Zer0th
Last updated by: Zer0th,