ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ECMAScript, ECMA-262 (javascript)
    Search: Html Css JavaScript Html Css JavaScript 2023. 1. 29. 18:25

     

    ECMA-262

    'ECMA, Ecma International'의 ECMA-262 기술 규격으로, 표준화된 스크립트 프로그래밍 언어를 말한다. Javascript를 표준화하기 위해 만들어졌다.

    1996년 3월, Netscape의 Brendan Eich가 발명한 Javascript를 'Navigator2.0 browser' 에서 지원하기 시작했고. 1996년 8월, 마이크로소프트가 'Internet Explorer 3.0'에 J스크립트를 포함해 출시했다.
    넷스케이프는 표준화를 위해 Javascript기술 규격을 'Ecma International'에 제출하였고, 이 규격에 대한 작업은 ECMA-262(ECMA스크립트)의 이름으로 1996년 11월부터 시작됐다.
    이로인해 Javascript와 J스크립트는 모두 ECMA스크립트와의 호환을 목표로 하면서도, 추가 확장 기능을 제공해왔다.

     

    1판 1997년 6월

    The first edition. JavaScript(Netscape) 및 JScript(Microsoft)와 같은 몇 가지 원천 기술을 기반으로 합니다. 이 언어는 Netscape의 Brendan Eich가 발명했으며 Netscape의 Navigator 2.0 브라우저에 처음 등장했습니다. Netscape의 모든 후속 브라우저와 Internet Explorer 3.0으로 시작하는 Microsoft의 모든 브라우저에 나타납니다. Ecma 표준은 패스트 트랙 절차에 따라 채택하기 위해 ISO/IEC JTC 1에 제출되었으며 1998년 4월에 국제 표준 ISO/IEC 16262로 승인되었다. 998년 6월 Ecma 총회는 ECMA-262의 두 번째 버전을 ISO/IEC 16262와 완전히 일치하도록 유지하고. 초판과 제2판 사이의 변경 사항은 본질적으로 편집이다.

    2판 1998년 6월

    The second edition. ISO/IEC 16262 국제 표준과 완전히 동일한 규격을 적용하기 위한 변경.

    3판 1999년 12월

    The third edition. 강력한 정규 표현식, 향상된 문자열 처리, 새로운 제어 문, try/catch 예외 처리, 보다 엄격한 오류 정의, 숫자 출력 형식 및 향후 언어 성장을 예상하여 약간의 변경 사항을 소개했다. ECMAScript 표준의 제3판은 1999년 12월 Ecma 총회에서 채택되었으며 2002년 6월에 ISO/IEC 16262:2002로 발표되었다.

    4판

    The third edition. ECMAScript는 제3판이 발행된 후 기본적으로 모든 웹 브라우저에서 지원되는 프로그래밍 언어가 된 World Wide Web과 함께 대규모 채택을 달성했다. ECMAScript의 네 번째 버전을 개발하기 위해 상당한 작업이 수행되었다. 그러나 그 작업은 완료되지 않았고 ECMAScript 4판으로 출판되지 않았지만 일부는 6판 개발에 통합되었다.

    5판 2009년 12월

    The fifth edition. ECMAScript 5판(ECMA-262 5thedition으로 발행됨)은 브라우저 구현 간에 공통적으로 사용되는 언어 사양에 대한 사실상의 해석을 성문화했으며 3판 발행 이후 등장한 새로운 기능에 대한 지원을 추가했다. 이러한 기능에는 접근자 속성, 개체의 반영 생성 및 검사, 속성 속성의 프로그램 제어, 추가 배열 조작 기능, JSON 개체 인코딩 형식 지원, 향상된 오류 검사 및 프로그램 보안을 제공하는 'strict mode'가 포함된다.

    5.1판 2011년 6월

    제5판은 패스트 트랙 절차에 따라 채택을 위해 ISO/IEC JTC 1에 제출되었으며 국제 표준 ISO/IEC 16262:2011로 승인되었다. ECMAScript Standard의 에디션 5.1은 약간의 수정을 포함했으며 ISO/IEC 16262:2011과 동일한 텍스트다. 5.1판은 2011년 6월 Ecma 총회에서 채택되었다.

    6판 2015년 6월

    2009년에는 5판의 출판을 준비하면서 6판의 집중적인 개발이 시작되었다. 그러나 이것은 1999년 제3판의 출판으로 거슬러 올라가는 상당한 실험과 언어 향상 디자인 노력이 선행되었다. 매우 실질적인 의미에서 제6판의 완성은 15년 간의 노력의 정점입니다. 이 버전의 목표에는 대규모 응용 프로그램, 라이브러리 생성 및 ECMAScript를 다른 언어의 컴파일 대상으로 사용하기 위한 더 나은 지원 제공이 포함되었습니다. 주요 개선 사항 중 일부에는 모듈, 클래스 선언, 어휘 블록 범위 지정, 반복자 및 생성기, 비동기 프로그래밍에 대한 약속, 구조 분해 패턴 및 적절한 꼬리 호출이 포함됩니다. 기본 제공되는 ECMAScript 라이브러리는 이진 숫자 값의 맵, 세트 및 배열을 포함한 추가 데이터 추상화를 지원하고 문자열 및 정규 표현식의 유니코드 추가 문자에 대한 추가 지원을 지원하도록 확장되었습니다. 빌트인은 또한 서브클래싱을 통해 확장 가능하도록 만들어졌습니다. 제6판은 정기적이고 점진적인 언어 및 라이브러리 향상을 위한 토대를 제공합니다. 제6판은 2015년 6월 총회에서 채택되었습니다.

    ECMAScript 2015 (ES2015) 6판에는 클래스와 모듈 같은 복잡한 응용 프로그램을 작성하기 위한 새로운 문법이 추가되었다. 하지만 이러한 문법의 의미는 5판의 strict mode와 같은 방법으로 정의된다. 이 판은 "ECMAScript Harmony" 혹은 "ES6 Harmony" 등으로 불리기도 한다.

    7판 2016년 6월

    ECMAScript 2016 (ES2016)

    ECMAScript 2016은 Ecma TC39의 새로운 연간 릴리스 주기 및 공개 개발 프로세스에 따라 릴리스된 첫 번째 ECMAScript 에디션이다. 일반 텍스트 소스 문서는 ECMAScript 2015 소스 문서에서 빌드되어 GitHub에서 완전히 추가 개발을 위한 기반 역할을 한다. 이 표준이 개발된 1년 동안 수천 개의 버그 수정, 편집 수정 및 기타 개선 사항을 나타내는 수백 개의 풀 요청 및 문제가 제출되었다. 또한 Ecmarkup, Ecmarkdown 및 Grammarkdown을 포함하여 이러한 노력을 지원하기 위해 수많은 소프트웨어 도구가 개발되었습니다. ES2016은 또한 새로운 지수 연산자에 대한 지원을 포함하고 'includes'라는 'Array.prototype'에 새로운 메서드를 추가한다. 제곱연산자 추가.

    8판 2017년 6월

    ECMAScript 2017 (ES2017)

    ECMAScript 2017은 Async Functions, Shared Memory, Atomics와 함께 작은 언어 및 라이브러리 향상, 버그 수정, 편집 업데이트를 도입했다. 비동기 함수는 Promise을 반환하는 함수에 대한 구문을 제공하여 비동기 프로그래밍 환경을 개선한다. 공유 메모리 및 Atomics는 다중 에이전트 프로그램이 병렬 CPU에서도 잘 정의된 실행 순서를 보장하는 원자 연산을 사용하여 통신할 수 있도록 하는 새로운 메모리 모델을 도입한다. 또한 Object.values, Object.entries 및 Object.getOwnPropertyDescriptors에 대한 새로운 정적 메서드도 포함되었다. 함수 표현식의 인자에서 trailing commas 허용, Object values/entries 메소드, async/await 등.

     

    9판 2018년 6월

    ECMAScript 2018 (ES2018)

    ECMAScript 2018은 AsyncIterator 프로토콜 및 비동기 생성기를 통한 비동기 반복 지원을 도입했다. 또한 dotAll 플래그, 명명된 캡처 그룹, 유니코드 속성 이스케이프, look-behind assertions등 4개의 새로운 정규식 기능이 포함되었다. 마지막으로 개체 나머지 및 스프레드 속성이 포함되었다. Promise.finally, Async iteration, object rest/spread property 등.

     

    10판 2019년 6월

    ECMAScript 2019 (ES2019) Object.fromEntries, flat, flatMap, Symbol.description, optional catch 등.

    ECMAScript 2019에는 몇 가지 새로운 내장 함수가 도입되었다. 배열을 평면화하기 위한 Array.prototype의 flat 및 flatMap, Object.entries의 반환 값을 새 객체로 직접 전환하기 위한 Object.fromEntries, String.prototype의 trimStart 및 trimEnd를 ' 널리 구현되었지만 비표준 String.prototype.trimLeft 및 trimRight 내장 기능에 대한 더 나은 이름의 대안이다. 또한 구문 및 의미 체계에 대한 몇 가지 사소한 업데이트가 포함되었다. 업데이트된 구문에는 선택적 catch 바인딩 매개 변수가 포함되어 있으며 문자열 리터럴에서 U+2028(LINE SEPARATOR) 및 U+2029(PARAGRAPH SEPARATOR)를 허용하여 JSON에 맞출 수 있다. 다른 업데이트에는 Array.prototype.sort가 안정적인 정렬이 되도록 요구하고, JSON.stringify가 입력에 관계없이 올바른 형식의 UTF-8을 반환하도록 요구하고, Function.prototype.toString이 해당 원본 소스 텍스트 또는 표준 자리 표시자.

     

    11판 2020년06월

    ECMA-262, 11th edition, June 2020

    ECMAScript 2020, 11판에서는 문자열에 대한 matchAll 메서드를 도입하여 전역 정규식에 의해 생성된 모든 일치 개체에 대한 반복자를 생성했다. import(), 동적 지정자를 사용하여 모듈을 비동기식으로 가져오는 구문 BigInt, 임의 정밀도 정수로 작업하기 위한 새로운 숫자 프리미티브 Promise.allSettled, 단락되지 않는 새로운 Promise 연결자 globalThis는 전역 this 값에 액세스하는 보편적인 방법입니다. 모듈 내에서 사용하기 위한 전용 export * as ns from 'module' 구문; for-in 열거 순서의 표준화 증가; import.meta, 모듈에 대한 컨텍스트 정보를 포함할 수 있는 모듈에서 사용할 수 있는 호스트가 채워진 개체입니다. "nullish" 값(null 또는 undefined) 작업을 개선하기 위해 두 가지 새로운 구문 기능을 추가할 뿐만 아니라 nullish 병합, 값 선택 연산자; 선택적 연결, 액세스/호출할 값이 null이면 단락하는 속성 액세스 및 함수 호출 연산자입니다.

    https://262.ecma-international.org/11.0;

     

    12판 2021년06월

    ECMA-262, 12th edition, June 2021

    12판인 ECMAScript 2021은 문자열에 대한 replaceAll 메서드를 도입했다. Promise.any, 입력 값이 충족될 때 단락되는 Promise 결합기. 한 번에 여러 오류를 나타내는 새로운 오류 유형인 AggregateError; 논리 할당 연산자(??=, &&=, ||=); 가비지 수집에서 보존하지 않고 대상 객체를 참조하기 위한 WeakRef 및 대상 객체가 가비지 수집될 때 수행되는 정리 작업의 등록 및 등록 취소를 관리하기 위한 FinalizationRegistry; 숫자 리터럴용 구분 기호(1_000); 그리고 Array.prototype.sort가 더 정확해져서 구현 정의 정렬 순서가 되는 경우의 수가 줄었다.

    https://262.ecma-international.org/12.0/;

     

     

    13판 2022년 06월

    the 13th edition. 13판인 ECMAScript 2022에서는 최상위 await를 도입하여 모듈의 최상위 수준에서 키워드를 사용할 수 있도록 했다. 새로운 클래스 요소: 공개 및 비공개 인스턴스 필드, 공개 및 비공개 정적 필드, 비공개 인스턴스 메서드 및 접근자, 비공개 정적 메서드 및 접근자 클래스별 평가 초기화를 수행하기 위한 클래스 내부의 정적 블록; 개체에 개인 필드가 있는지 테스트하기 위한  #x in obj 구문; 일치하는 하위 문자열에 대한 시작 및 종료 인덱스를 제공하는 /d 플래그를 통한 정규 표현식 일치 인덱스 오류의 원인 체인을 기록하는 데 사용할 수 있는 Error 개체의 원인 속성 Strings, Arrays 및 TypedArrays에 대한 at 메서드는 상대 인덱싱을 허용한다. Object.prototype.hasOwnProperty의 편리한 대안인 Object.hasOwn.
    https://262.ecma-international.org/13.0/

     

    'Html Css JavaScript' 카테고리의 다른 글

    Javascript UMD (Universal Module Definition)  (0) 2023.01.29
    Javascript AMD (Asynchronous Module Definition)  (0) 2023.01.29
    Javascript ESM (ECMA Script Module)  (0) 2023.01.29
    Javascript CJS (CommonJS)  (0) 2023.01.29
    jquery 선택자 id, class, name  (0) 2023.01.23
    Page Lifecycle API  (0) 2023.01.23
    window unload event  (0) 2023.01.23
    window beforeunload event  (0) 2023.01.23

    댓글