Articles

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 월에 마무리되었습니다.,

ECMAScript 버전의 역사
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.sortObject.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 이 있습니까?.주소?.우편 번호코드>. 속성 중 하나가없는 경우zipcodeundefined가됩니다.

ES.NextEdit

ES.,다음은 글을 쓰는 시점에서 다음 버전이 무엇이든간에 참조하는 동적 이름입니다. 에스.다음과 같은 기능을 가지고 있습니다 완료되면 제안서(일명”4 단계 제안”)로 나열됩에서 완성 된 제안이 있지 않은 부분의 비준 사양. 언어위원회는”살아있는 스펙”모델을 따르므로 이러한 변화는 표준의 일부이며 비준은 형식입니다.피>