• JAVA_ JavaScript 의 정의, 특징

    2021. 9. 16.

    by. KAEY


    Javascript

    Javascript는 Compile 언어가 아닌 Interpreter 언어 프로그램을 번역해서 실행시키는 소프트웨어

     

     

    탄생 

    1995년 넷스케이프 커뮤니케이션스의 브랜던 아이크가 개발. 

    넷스케이프 네비게이터 2.0에 의해 구현, 1996년에는 마이크로소프트 사의 Internet Explorer 3.0에 탑재 됨 

    1997년부터 ECMAScript를 따르는 표준화가 진행되었고, 각 브라우저도 ECMAScript 사양을 구현하도록 권고 중

     

     

     

    웹 브라우저용 스크립트 언어이며 본격적인 프로그래밍 언어가 아니다 

    (1) 대다수의 웹 페이지 개발자는 웹 페이지를 꾸미기 위한 간단한 코드만 복사하여 사용 

    (2) 구글 지도 등의 기능이 구현된 애플리케이션이 등장하고, Ajax 비동기 통신 기술을 사용하여 손색없는 기능과 조작성 을 실현하게 되면서, 고성능의 웹 애플리케이션을 만들 수 있는 객체지향언어임이 인식되기 시작함 

    (3) 2008년부터 HTML5 사양이 정해지기 시작하고 자바스크립트로 웹 애플리케이션을 만들 수 있는 다양한 API가 등장 하게 되었다. 동시에 웹 브라우저 성능이 향상되기 시작하면서 자바스크립트가 대중적인 언어로 자리 잡기 시작함

     

     

     

    특징

    인터프리터 언어

    최근 자바스크립트 코드를 컴파일하는 JIT 컴파일러(Just In Time Compiler)가 내장되어 실행속도가 빨라짐 자바스크립트를 활용한 고기능 웹 애플리케이션을 구현할 수 있게 된 요인 중 하나 

     

    동적 프로토타입 기반 객체 지향 언어

    클래스가 아닌 프로토타입을 상속하는 프로토타입 기반 객체 지향 언어 객체를 생성한 후에도 프로퍼티와 메소드를 동적으로 추가하거나 삭제할 수 있음 

     

    동적 타입 언어

    변수 타입이 없어서 프로그램 실행 도중 변수에 저장되는 데이터 타입이 동적으로 바뀔 수 있음

     

    함수가 일급 객체

    자바스크립트의 함수는 객체이며, 함수에 함수를 인수로 넘길 수 있음.

     

     

     

    ECMAScript(코어언어) 

    ECMA(Ecma International)라는 조직의 TC-39 위원회가 표준화 작업을 하고, ECMA-262 문서로 공개 됨 

     

     

     

    클라이언트 측의 고유한 기술요소 

    window 인터페이스 : 자바스크립트로 브라우저 또는 창을 조작하는 기능 제공 

    DOM : 자바스크립트로 HTML문서의 요소를 제어하는 기능 제공 

    XMLHttpRequest : 서버와 비동기로 통신하는 기능 제공 

     

     

     

    서버 측 고유한 기술요소 

    Node.js : 구글이 개발한 자바스크립트 실행 환경 (자주 사용됨) 

    Aptana Jaxer : 압타나 사가 개발하고 현재는 오픈소스로 개발되고 있는 자바스크립트 실행 환경

     

     

     

    MAScript 6 

    2015년 6월에 권고된 새로운 버전이고, ECMAScript 2015라고도 불림 

    2009년에 권고된 ECMAScript 5 이후로 가장 크게 변화됨. 다른 프로그래밍 언어가 제공하는 다양한 기능을 추가하면서도 이전 자바스크립트 버전과의 호환성을 보장 

    웹 브라우저별 구현 상황

    https://kangax.github.io/compat-table/es6/ 

    ECMAScript 6가 대중화되기 위한 토대가 거의 마련 됨

     

     

     

    ECMAScript 2017 작업이 진행 중 

    ECMAScript 6 사양에 포함되지 못했던 기능을 도입하는 소규모 개정판이 될 예정

     

     


    댓글 (비로그인 댓글 허용하지 않습니다.)