본문으로 바로가기

자바스크립트 (ECMAScript) 버전

category 웹코딩/Javascript 2016.03.14 11:00

그 동안 자바스크립트(JS)를 사용하면서도 현재 사용하는 브라우저가 몇 버전의 JS를 지원하는지, 새로이 어떠한 기능들이 추가되었는지도 깜깜히 지내왔습니다. jQuery에 너무 익숙해져 jQuery에서 지원하는 기능들에 발목이 메인 형상이지요. 저와 비슷한 분들이 있을꺼라 생각되어 관련정보를 취합해 보았습니다.

JavaScript와 ECMAScript, JScript

우리가 흔히 자바스크립트라고 부르는 언어는 Ecma 인터내셔널[각주:1]이라 불리는 표준화 기구에서 제정한 ECMA-262 스크립트이다.

자바스크립트는 넷스케이프에서 제작하였고 이를 Ecma 표준으로 등록하는 과정에서 이미 등록되어 있는 JAVA와 유사한 명칭으로 인해 ECMA-262라는 이름을 가지게 되었으며 이를 표준화한 것이 ECMAScript이다. 마이크로소프트에서도 자바스크립트와 유사한 JScript를 제작하였고 이를 브라우저에 포함하였다.

자바스크립트와 JScript는 ECMAScript와의 호환을 목표로하면서 ECMA 규격에 포함되지 않는 확장기능들을 제공하고 있다. 우리가 자바스크립트라고 부르는 언어가 가리키는 것은 통칭 ECMAScript의 표준안에 해당하는 부분이기때문에 각각의 브라우저에서 제공하는 자바스크립트 지원사항은 달라진다.

ECMA-262 버전

ECMA-262는 지금까지 여섯 개의 버전이 출시되었고, 현재 6 버전(2015년 6월)이 최신버전이다. 4 버전은 중도 포기되었는데 타언어와 비슷한 개념들을 도입하면서 복잡성이 크게 증가하였고 관련된 정치적 문제점이 있었기 때문이다.

버전 출시일 차이점 브라우저지원
1 1997년 6월 초판 넷스케이프 4.5, IE4.0
2 1998년 6월 ISO/IEC 16262 국제 표준과 완전히 동일한 규격을 적용하기 위한 변경. 넷스케이프 4.5, IE4.0
3 1999년 12월 강력한 정규 표현식, 향상된 문자열 처리, 새로운 제어문 , try/catch 예외 처리, 엄격한 오류 정의, 수치형 출력의 포매팅 등. 넷스케이프 6.0 이후의 넷스케이프와 모질라의 모든 버전에 포함, IE5.5
4 포기됨 4 버전은 언어에 얽힌 정치적 차이로 인해 버려졌다. 이 판을 작업 가운데 일부는 5 버전을 이루는 기본이 되고 다른 일부는 ECMA스크립트의 기본을 이루고 있다.  
5 2009년 12월 더 철저한 오류 검사를 제공하고 오류 경향이 있는 구조를 피하는 하부집합인 "strict mode"를 추가한다. 3 버전의 규격에 있던 수많은 애매한 부분을 명확히 한다. 이후 부터는 ECMAScript 호환 테이블이 제공되니 이를 참고. ECMAScript 5 호환성
5.1 2011년 6월 ECMA스크립트 표준의 5.1 버전은 ISO/IEC 16262:2011 국제 표준 제3판과 함께 한다.  
6 2015년 6월 6 버전에서는 클래스와 모듈 같은 복잡한 응용 프로그램을 작성하기 위한 새로운 문법이 추가되었다. 하지만 이러한 문법의 의미는 5 버전의 strict mode와 같은 방법으로 정의된다. 이 버전은 "ECMAScript Harmony" 혹은 "ES6 Harmony" 등으로 불리기도 한다. ECMAScript 6 호환성
7 작업중 6 버전에 이어서 새로운 언어 기능이 추가될 예정이다.  

가장 범용적인 자바스크립트 버전은 1.5 버전이며, 이는 ECMAScript 3 버전에 해당하며, JScript 5.5 버전이 포함된 IE 5.5 및 기타 브라우저에서 모두 지원한다.

IE9를 포함한 모던 브라우저들은 ECMAScript 5 까지는 무난히 적용가능하다.

현재에 이르러 배우게되는 자바스크립트는 대부분 ECMAScript 3 버전에 대한 공부이며, 최근에 출시된 ECMAScript 6 버전이 새로운 기능으로 무장되어 있어 이와 관련된 공부가 필요할 것이다.


  1. Ecma 인터내셔널(Ecma International)은 정보와 통신 시스템을 위한 국제적이면서도 회원국 기반의 비영리 표준화 기구이다. 이 이름은 이 기구의 국제적 확장을 반영하여 1994년에 European Computer Manufacturers Association (ECMA)에서 바뀐 것이다. 그 결과 이 이름은 더 이상 두문자어가 아니며 더 이상 대문자만을 사용하지 않는다. 이 기구는 원래 1961년에 유럽에서 컴퓨터 시스템을 표준화하기 위해 세워졌다. 멤버십은 유럽에서 컴퓨터나 통신 시스템을 생산하고 시장화하고 개발하는 회사들에게 열려 있다. 이 기구는 제네바에 위치해 있다. 출처: https://ko.wikipedia.org/wiki/Ecma_%EC%9D%B8%ED%84%B0%EB%82%B4%EC%85%94%EB%84%90 [본문으로]
신고

댓글을 달아 주세요

  1. BlogIcon COCO Media 2016.03.14 22:51 신고

    JScript는 마소에서 만든거였네요. 대충 어느정도 JS언어대해서 알겠네요. ㅠ 궁금한 점이 있습니다. jQuery나 tweenmax나 파일명이 *.js던데 자바스크립트를 기초로해서 만들어진 언어고, 자바스크립트로도 구현이 가능한데 사용하기 편하게 주요기능들만 모아서 간편하게 만든게 jQuery인 것이 맞는건가요?

    두번째는 최근에 저도 ㅠ input radio 타입의 버튼을 만들면서 jQuery .one() 함수가 적용이 안되어 JavaScript의 onclick="myFunction();this.onclick=null;를 사용해서 쉽게 해결한 적이 있습니다. 그런데 검색을 하다보니 <a onclick="javascript:..."> 이런 형식 사용을 하지 말라고 하는 글을 봐서.. Javascript를 많이 사용하는 것은 웹표준에 맞지 않는것인가요? 그래서 jQuery위주로 사용을 해야하는지 궁금합니다. 지금 블로그 아이콘팝업창이 onclick="javascript:window.open으로 되어있어서 다바꿔야 하는것인지.. 앞으로 사용해도 되는지 사용여부도 궁금합니다.

    • BlogIcon 흉내쟁이 2016.03.15 19:34 신고

      jQuery 같은 것들은 일반적으로 라이브러리라고 부릅니다. 이런 것들은 기본 언어(여기선 자바스크립트)에서 지원하지 않는 것들을 추가하여 새로운 기능을 부여한다거나 기존의 불편한 부분을 보완하여 수정하는 것들이 대부분입니다. 확장기능정도로 분류하면 어떨까 싶습니다. 이 과정에서 당연히 사용이 까다로운 것들을 모든 지식을 습득하지 않아도 손쉽게 사용하도록 도와주게 되어 인기있는 라이브러리가 되는 것이지요.

      과거에는 말씀하신 onclick 같은 이벤트를 HTML 코드내애 직접 삽입하는 인라인 스크립트형식으로 제작되어 온게 사실입니다. 근래에는 구조(HTML)와 기능(JavaScript), 스타일(stylesheet)를 분리하여 코드의 가독성 높이고 코드를 수정 및 보완할때 이점을 확보하는 추세입니다.

      말씀하신 이벤트 연결은 자바스크립트 파일안에서 이벤트부분을 만들어두고 수정이 필요할때 해당 파일의 이벤트 부분만을 수정하면 완료될 수 있는 부분이오나, HTML 내에서 이벤트가 맞물려 있을 경우에는 해당 HTML 문서의 이벤트 연결 부분을 찾아 수정하고 실제로 그 이벤트의 동작은 JS 파일에서 구현해야하기 때문에 좀 더 복잡해질 수 있습니다.

      HTML 코드내에선 이벤트에 반응할 요소의 ID 값만 지정해두고 이벤트 연결과 동작은 모두 JS파일안에서 구현한다면 ID 값이 유지되는한 HTML 파일이 어떻게 수정되어도 문제가 되지 않겠지요.

  2. 삐돌이 2016.08.03 09:59 신고

    ES5에서 ES5.1 개발까지 18000년이 흘렀군요. 태클죄송합니다.

티스토리 툴바