ECMAScript (한국어)
ECMAScript 사양은 Netscape 의 Brendan Eich 가 개발 한 스크립팅 언어의 표준화 된 사양입니다. 1995 년 12 월 썬 마이크로 시스템즈와 넷스케이프는 보도 자료에서 자바 스크립트를 발표했다. 1996 년 11 월 Netscape 는 JavaScript 의 표준화를 진행하기 위해 Ecma 국제 표준기구(Ecma International standards organization)회의를 발표했습니다. ECMA-262 의 초판은 1997 년 6 월 Ecma 총회에서 채택되었습니다. 그 이후로 언어 표준의 여러 판이 출판되었습니다., 이름”ECMAScript”타협 사이에 관련된 조직의 표준화,언어,특히 Netscape 및 Microsoft,누구의 분쟁이 지배하는 초기 기준 세션이 있습니다. Eich 는”ECMAScript 는 항상 피부병처럼 들리는 원치 않는 상품명이었습니다.”ECMAScript 되었습을 공식화를 통해 운영상의 의미에서 작업에 의해 스탠포드 대학교 및 학과 컴퓨터,런던 임페리얼 칼리지에 대한 보안을 분석하고 표준화.,
JavaScript 와 JScript 는 모두 ECMAScript 사양을 준수하는 동시에 사양에 설명되지 않은 추가 기능을 제공합니다.
VersionsEdit
ECMA-262 의 11 개의 판이 출판되었습니다. 표준 버전 11 에 대한 작업은 2020 년 6 월에 마무리되었습니다.,
Edition | 게시일 | 이름 | 이전 버전 | 편집기 | |||
---|---|---|---|---|---|---|---|
1 | June1997 | 첫 번째 버전 | 남자 L. 주니어 스틸,998 | 편집상의 변경을 유지하는 사양을 완전히 맞 ISO/IEC16262 국제 표준 | 마이크 Cowlishaw | ||
3 | December1999 년 | 추가 정규 표현식을,더 나은 문자열 처리,새로운 제어문,try/을 잡아 예외 처리,엄격한 정의의 오류 포맷에 대한 숫자 출력,그리고 다른 개선 | 마이크 Cowlishaw | ||||
4 | 버려진(초안 마지막 30June2003) | 네번째 에디션이었기 때문에 정치적 차이에 관한 언어 복잡합니다., 제 4 판을 위해 제안된 많은 특징은 완전하게 삭제되었습니다;몇몇은 제 6 판에 통합되었습니다. | |||||
5 | 2009 | “는 추가 엄격한 모드로”이 하위 집합을 제공하려는 것이 더 오류가 철저한 검사 및 피 오류가 발생하기 쉬운 구문으로 표현할 수 있습니다. 제 3 판 사양의 많은 모호성을 명확히하고 해당 사양과 일관되게 다른 실제 구현의 동작을 수용합니다., 몇 가지 새로운 기능을 추가,같은현,라이브러리 지원에 대한 JSON,그리고 더 완전하게 반영에 객체 속성입니다. | Pratap 락스,알렌 Wirfs-브록 | ||||
5.1 | June2011 | 이 5.1 판 ECMAScript 표준을 완벽하게 맞으로 세 번째 에디션의 국제 표준 ISO/IEC16262:2011., | 보 9 판–ECMAScript2018 | 브라 Terlson | |||
10 | June2019 | ECMAScript2019 년(ES2019) | 조 제 10 판–ECMAScript2019 | 브라 Terlson,브래들리는 파리아스, 요르단 Harband | |||
11 | 월 2020 | ECMAScript2020(ES2020) | 을 참조하십시오 11th Edition–ECMAScript2020 | 요르단 Harband, Kevin Smith |
In June2004,Ecma 국제 게시 ECMA-357 표준을 정의하는 확장자를 ECMAScript,으로 알려진 ECMAScript XML(E4X)., Ecma 또한 정의”콤팩트 프로파일에 대한”ECMAScript–으로 알려진 ES-CP 또는 ECMA327–도록 설계되었다위한 리소스가 제한된 장치를 철회되었고 2015 년에.
4th Edition(포기)편집
의 ECMA-262(ECMAScript4ES4)되었을 것이 첫 번째 주요 업데이트 ECMAScript 이후 세 번째 판에서 출판 되었 1999. 사양(참조 구현과 함께)은 원래 2008 년 10 월까지 완료를 목표로했습니다. 첫 번째 초안은 1999 년 2 월이었습니다., 이 언어의 개요는 2007 년 10 월 23 일 워킹 그룹에 의해 발표되었습니다.
2008 년 8 월까지 ECMAScript4th edition 제안은 코드 명 ECMAScript Harmony 프로젝트로 다시 확장되었습니다. 아래의 기능에 대한 토론에서 조화를 이루는 시간 포함되어 있:
- 클래스를,
- 모듈 시스템,
- 선택 유형은 주석과 정적 입력하면,아마도를 사용하여 구조적 형식 시스템,
- 발생기 및 반복기,
- 선언 및 할당
- 대수적 데이터 유형이 있습니다.,
의 의도를 이러한 기능이 부분적으로 더 나은 지원 프로그램에서 큰을 허용할 수 있 희생의 일부는 스크립트의 능력을 동적 성능을 향상시킬 수 있습니다. 예를 들어 Adobe 가 개발하고 오픈 소스 한 ActionScript 용 가상 머신 인 Tamarin 은 특정 스크립트 클래스에 대한 jit(just–in-time compilation)지원을 제공합니다.
새로운 기능을 도입하는 것 외에도 edition4 에서 일부 ES3 버그가 수정되도록 제안되었습니다. 이러한 수정 및 기타 및 json 인코딩/디코딩에 대한 지원은 ECMAScript,5th Edition 사양에 접어 들었습니다.,
작동 시작에 Edition4 후 ES-CP(컴팩트 프로파일)사양을 완료되었고,계속되는 약 18 개월는 느리게 진행되었다의 균형을 이론의 Netscape 의 자바스크립트 2 명세서와 구현을 경험 Microsoft JScript.NET. 몇 시간 후,초점으로 이동 ECMAScript XML(E4X)표준입니다. 이 업데이트는 논란없이 진행되지 않았습니다. 2007 년 말,나중에 모질라 재단의 CTO 인 Eich 와 Internet Explorer 의 microsoft 플랫폼 아키텍트 인 Chris Wilson 간의 토론이 여러 블로그에 공개되었습니다., 윌슨 경고 있기 때문에 제안된 변경사항을 ECMAScript 그 뒤로 호환되지 않는 어떤 면에서는 이전 버전의 언어를 업데이트 에 달했다”깨 웹”그리고는 이해 관계자는 반대되는 변화되고 있었다”에서 숨겨진 view”. Eich 에 의해 반응을 알리는 윌슨 것 같았다”반복되는 허위 사실을 블로그에”거부 있었다는 것을 시도에 반대 의견을 억제하고 비평가들은 도전하게 특정 호환성의 예., 그는 Microsoft Silverlight 와 Adobe AIR 가 각각 C#과 ActionScript3 에 의존하고 있으며 둘 다 ECMAScript Edition3 보다 크고 복잡하다고 지적했습니다.
5EditionEdit
Yahoo,Microsoft,Google,그리고 다른 4th edition 반대를 형성되는 자신의 소위원회를 디자인하는 더 적은 야심의 업데이트 ECMAScript3 으로 예상된 ECMAScript3.1. 이 에디션은 호환성에 큰 중점을두고 보안 및 라이브러리 업데이트에 중점을 둘 것입니다. 앞서 언급 한 공개 스파링 후 ECMAScript3.,1ECMAScript4 팀에 동의 타협안에 두 가지 버전은 것에 병렬로 조율,사 팀을 보장하는 ECMAScript3.1 남아 있는 엄격한 하위 집합의 ECMAScript4 에서 모두 의미와 구문입니다.
그러나 다른 철학에서는 각 팀의 결과 반복되는 파손의 하위 집합은 규칙,그리고 그것은 남아 있는지 의심스럽 ECMAScript4 의 적대자들이 이제까지 지원하거나 구현 ECMAScript4 다., 후 일년 이상 이후의 불일치를 통해 미래의 ECMAScript 내 Ecma 기술위원회는 39,두 팀에 도달하는 새로운 타협 월 2008:Brendan Eich 발표 Ecma TC39 초점을 작업에 ECMAScript3.1(나중에 이름을 변경하 ECMAScript,5 판)프로젝트 전체와의 협력을,모든 당사자와 공급 업체를 대상으로 두 개 이상의 상호 운용이 가능한 구현에 의해 초기 2009. 2009 년 4 월 Ecma TC39 는 5 판의”최종”초안을 발표하고 상호 운용 가능한 구현의 테스트가 7 월 중순까지 완료 될 것으로 예상된다고 발표했습니다., 2009 년 12 월 3 일,ECMA-262 5 판이 출판되었습니다.
6th Edition-ECMAScript2015Edit
처음에는 ECMAScript6(ES6)으로 알려져 나중에 ECMAScript2015 로 이름이 바뀐 6th edition 이 2015 년 6 월에 마무리되었습니다. 이 업데이트한 상당한 새로운 구문을 쓰기 위해 복잡한 응용 프로그램을 포함하여 클래스를 선언(class Foo { ... }
),ES6 모듈import * as moduleName from "..."; export const Foo
지만,그들을 정의 의미에서 동일한 조건으로 ECMAScript5 엄격한 모드입니다., 다른 새로운 기능은 다음과 같습니다 반복기 및for...of
루프,Python 스타일의 발전기,기능 화살표현(() => {...}
),let
키워드에 대한 지역 선언const
키워드를 위해 일정 지역 선언,이진 데이터 입력,배열,새로운 컬렉션(지도,집합과 WeakMap),약속, 숫자와 수학의 향상,반사,프록시(메타 프로그래밍을 위한 가상의 객체와 래퍼)와 템플릿에 대한 자세한 내용은 리터럴 문자열입니다. 전체 목록은 광범위합니다., 첫 번째”ECMAScript Harmony”사양으로”ES6Harmony”라고도합니다.”
7 판–ECMAScript2016Edit
공식적으로 ECMAScript2016 으로 알려진 7 판은 2016 년 6 월에 마무리되었습니다. 그것의 기능은 다음과 같습니다 차단위 지정을 변수와 함수,선언 및 패턴(변수),적절한 꼬리를 통화,지수 연산자**
숫자await
,async
키워드 비동기 프로그램,그리고배열입니다.프로토 타입.포함코드>기능.,
지수 연산자는Math 와 같습니다.pow
이지만 Python,F#,Perl 및 Ruby 와 같은 언어와 유사한 간단한 구문을 제공합니다.async
/기다리고
었으로 환영하는 쉬운 방법이 사용하는 약속과 개발동기 코드.
8th Edition–ECMAScript2017Edit
공식적으로 ECMAScript2017 으로 알려진 8th edition 은 2017 년 6 월에 마무리되었습니다. 그 특징은객체를 포함한다.값
,Object.,이 예제에서는 다음과 같은 작업을 수행 할 수 있습니다.getOwnPropertyDescriptors
기능을 쉽게 조작,물체의async/await
구조물을 사용하는 발전기하고 약속하고,추가 기능을 위한 동시성 atomics.
9th Edition–ECMAScript2018Edit
공식적으로 ECMAScript2018 으로 알려진 9th edition 은 2018 년 6 월에 마무리되었습니다. 새로운 기능을 포함한 나머지/확산 연산자에 대한 개체 리터럴(세 점:...identifier
),비동기 반복Promise.prototype.finally
며 추가 RegExp.,
확산 연산자를 사용하면 아래 그림과 같이 객체 속성을 쉽게 복사 할 수 있습니다.
10th Edition–ECMAScript2019Edit
공식적으로 ECMAScript2019 로 알려진 10th edition 은 2019 년 6 월에 출판되었습니다. 추가 기능을 포함 하나 이에 국한되지 않Array.prototype.flat
,Array.prototype.flatMap
,변화Array.sort
및Object.fromEntries
.
배열.sort
는 이제 안정적인 것으로 보장되므로 정렬 우선 순위가 동일한 요소가 정렬 된 배열에서 동일한 순서로 나타납니다., Array.prototype.flat(depth=1)
평평하게 배열을 지정한 깊이 있는 의미는 모든 하위 배열 요소(지정한 깊이)연결을 재귀적으로.
11 판-ECMAScript2020Edit
공식적으로 ECMAScript2020 으로 알려진 11 판은 2020 년 6 월에 출판되었습니다. 또한 새로운 기능,이 버전을 포함하는BigInt
기본 형식에 대한 임의 크기의 정수,nullish 결합연산자,그리고 globalThis 개체입니다.,
BigInts 만나는BigInt
생성자 또는 구문10n
,여기서”n”은 배치된 숫자 뒤 문자적입니다. BigInts 는번호를 초과하는 정수의 표현 및 조작을 허용합니다.Max_safe_integer
,숫자는 배정밀도 64 비트 IEEE754 값으로 표시됩니다., 예를 들어,BigInts 의 지수는수학 대신
,를 반환하고 오른쪽 연산자면의 왼쪽은**
연산자로 수행해야합니다.pow코드>.이 작업을 수행하려면 다음 작업을 수행해야합니다.?null
또는undefined
., 이것은 모든 예제에 대해”문자열”을 반환하는||
연산자와 대조됩니다.
false ?? "string" // -> falseNaN ?? "string" // -> NaNundefined ?? "string" // -> "string"
선택 사항 체인에 액세스 할 수 있습을 위해 중첩에서 노드 개체없이 확인되었다. 예를 들어,”3186ca7743″>const zipcode=person 이 있습니까?.주소?.우편 번호코드>. 속성 중 하나가없는 경우zipcode
는undefined
가됩니다.
ES.NextEdit
ES.,다음은 글을 쓰는 시점에서 다음 버전이 무엇이든간에 참조하는 동적 이름입니다. 에스.다음과 같은 기능을 가지고 있습니다 완료되면 제안서(일명”4 단계 제안”)로 나열됩에서 완성 된 제안이 있지 않은 부분의 비준 사양. 언어위원회는”살아있는 스펙”모델을 따르므로 이러한 변화는 표준의 일부이며 비준은 형식입니다.피>