최근 몇 년 동안 JavaScript의 개발이 급증하고 있습니다. 새로운 ECMAScript 사양은 매년 릴리스되므로 JavaScript 버전 관리, 각 버전에 대한 기능 지원 및 향후 지향 코드를 작성하는 방법이 혼란 스럽습니다.
이 겉보기에 지속적인 업데이트의 물결의 이유를 더 잘 이해하기 위해 JavaScript의 기록과 그 버전을 간단히 검토하고 표준화 프로세스가 왜 중요한지 이해해 봅시다.
키 포인트
es6 (ES2015라고도 함)은 클래스, 약속, 화살표 기능, ES 모듈, 생성기 및 반복자와 같은 기능을 소개하는 JavaScript 버전 관리의 주요 변화를 나타냅니다. 이것은 향후 연간 소형 JavaScript 버전 업데이트를위한 기초를 제시하는 중요한 기초 업데이트입니다.
ES2015는 새로운 언어 기능의 토론 및 채택을위한 제안 기반 TC39 프로세스를 설정합니다. 이 프로세스는 Strawman (서문), 제안서 (제안), 초안 (초안), 후보자 (후보자) 및 완성 된 5 단계로 구성됩니다.
ES2015 이후 후속 버전은 매년 6 월에 출시되며 ES2016 (ES7) 및 ES2017 (ES8)은 증분 기능과 개선을 도입합니다. ES2018은 비동기 반복기와 같은 강력한 새로운 기능뿐만 아니라 객체 확장 및 잔류 특성을 소개합니다.
릴리스 연도를 반영하고 버전 번호를 제거하기 위해 ES6에서 ES2015로 이름을 변경했습니다. 이러한 움직임은 혼란을 피하고 JavaScript가 지속적으로 업데이트되고 개선되는 역동적 인 언어임을 입증하는 것입니다. 새로운 이름 지정 규칙은 또한 언어 업데이트 및 개선의 규칙 성을 나타내는 데 도움이됩니다.
JavaScript 버전 관리의 초기 역사 -
JavaScript의 프로토 타입은 1995 년 5 월 Brendan Eich에 의해 단 10 일 만에 작성되었습니다. 그는 처음에 Netscape Navigator의 체계 런타임을 구현하기 위해 채용되었지만 관리 팀은 C 스타일 언어를 사용하여 당시 새로운 Java를 보완하도록 강요했습니다. -
1995 년 12 월 Netscape Navigator 버전 2에서 JavaScript가 데뷔했습니다. 이듬해 Microsoft는 JavaScript를 리버스 엔지니어링하고 JScript라는 자체 버전을 만들었습니다. Internet Explorer Browser 버전 3과 함께 출시 된 JScript는 JavaScript와 거의 동일하지만 동일한 버그 및 기발한 기능을 포함하여 Extra Internet Explorer 특유의 기능이 있습니다.
- ecmascript의 탄생
-
jscript (및 기타 변형)가 JavaScript 프롬프트와 함께 언어를 표준화하기 위해 NetScape 및 Sun Microsystems와 호환되도록해야합니다. 그들은 유럽 컴퓨터 제조업체 협회 (ECMA)의 도움으로 표준을 호스팅 할 책임이 있습니다. 표준화 된 언어는 Sun의 Java 상표의 침해를 피하기 위해 ECMAScript라고합니다. 궁극적으로 ECMAScript는 사양을 참조하는 데 사용되며 JavaScript (및 IS)는 언어 자체를 참조하는 데 사용됩니다.
ECMAScript의 JavaScript 버전 관리 및 유지 보수를 담당하는 실무 그룹은 기술위원회 39 또는 TC39로 알려져 있습니다. Apple, Google, Microsoft 및 Mozilla와 같은 모든 주요 브라우저 공급 업체의 담당자와 웹 개발에 관심이있는 다른 회사의 전문가 및 담당자로 구성됩니다. 그들은 언어의 방향을 결정하기 위해 정기 회의를 가졌습니다.
1997 년 TC39에 의해 JavaScript가 표준화되었을 때, 사양을 ECMAScript 버전 1이라고합니다. 초기에, 후속 버전의 ECMAScript는 매년 출시되었지만 합의 부족과 ECMAScript 4에서 관리하기 어려운 대규모 기능 세트로 인해 산발적이되었습니다. 따라서 버전은 3.1로 종료되어 좁아졌지만 그 이름으로 마무리되지는 않았지만 결국 ECMAScript 5로 진화했습니다. ECMAScript 3이 출시 된 지 10 년이 지난 2009 년 12 월에 출시되었으며 JSON SERIALIZATION API, FUCTION.PROTOTYP.BIND 및 Strict Mode와 같은 기능을 도입했습니다. 2 년 후, 최신 반복 5.1에서 약간의 모호성을 명확히하기 위해 유지 보수 버전이 출시되었습니다.
ecmascript 2015 및 연간 릴리스 부흥
TC39가 ECMAScript 4에 의한 의견 불일치를 해결함에 따라 Brendan Eich는 더 짧고 작은 방출의 필요성을 강조했습니다. 이 새로운 사양 중 첫 번째는 es2015 (원래 ECMAScript 6 또는 ES6)입니다. 이 릴리스는 미래의 연례 JavaScript 릴리스 관리를 지원하는 거대하지만 필요한 초석입니다. 여기에는 오늘날 많은 개발자들이 좋아하는 많은 기능이 포함되어 있습니다.
카테고리
약속
화살표 기능
es 모듈
generator and iterator
es2015는 언어 기능을 논의하고 채택하기위한 제안 기반 모델 인 를 따르는 첫 번째 버전입니다.
tc39 프로세스
제안이 다가오는 ECMAScript 버전으로 승인되기 전에 5 단계를 거쳐야합니다. -
단계 0 : Strawman (서문)
이것은 사양에 아이디어를 제출할 수있는 편리한 단계입니다. 누구나 기능 제안을 할 수 있습니다. 즉, TC39 회원 및 비회원은 기여자로 등록했습니다.
1 단계 : 제안 (제안)
제안의 공식화의 첫 번째 단계. 필수 : <.>
-
이 솔루션에서 수정 한 기존 문제를 설명하십시오
는 API 개요뿐만 아니라 고급 구현 세부 정보뿐만 아니라 폴리 필 및/또는 데모를 제공합니다.
사전에 잠재적 장애물에 대해 논의하십시오
제안을 채택하고 발전 시키려면 담당자가 선정되어야합니다. 이 사람은 TC39 회원이어야합니다. -
2 단계 : 드래프트 (초안)
이것은이 기능이 향후 ECMAScript 릴리스에 포함될 수있는 이정표입니다. 여기서 제안의 구문과 의미는 사양에 의해 설명 된 공식 언어를 사용하여 자세히 설명합니다. 현재 실험 구현이 제공되어야합니다.
3 단계 : 후보 (후보)
여기서, 제안의 대부분의 컨텐츠 및 지원 기술이 개발되었지만 사용자 및 구현 자 (예 : 브라우저 제조업체)의 추가 피드백이 개발되었습니다. 획득 및 조치가 취해지면 요약 및 사양 세부 정보는 지정된 검토 자 및 지정된 편집자가 마무리하고 서명합니다. 이 단계에는 일관된 구현이 필요하기 때문에 그 후에는 중요한 변경 사항 만 허용됩니다.
4 단계 : 완성 (완료)
이 제안은 받아 들여졌으며 ecmascript에 추가 될 수 있습니다. 그러므로 본질적으로 :
test262 의 일부에 대한 수락 테스트는 JavaScript로 작성된 스위트 룸
기능의 준수 및 동작을 보여주기 위해 작성되었습니다.
적어도 두 가지 호환 구현이 제공되고 출시되며, 이들은 모두 견고성과 개발자 가용성을 증명합니다
풀 요청은 공식 ECMA-262 코드 기반에 제출되었으며 사양 편집에 의해 서명되었습니다.
위의 코드 기반 기여 문서는 GitHub 문제의 사용에 대해 자세히 설명하고 언어 추가를 관리하기위한 요청을 풀어줍니다.
- 앞으로 기대
ES2015의 JavaScript 버전 관리 및 업데이트 프로세스를 완료하고 TC39를 설정 한 후 매년 6 월에 후속 버전이 출시되며 제안은 1 년 동안 포함됩니다. 글을 쓰는 시점에는 이미 세 가지 새로운 사양이 있습니다.
es2016
ES7이라고도 알려진 는 ECMAScript의 최초의 작은 증분 버전입니다. 버그 수정 외에도 두 가지 기능 만 추가됩니다. -
array.prototype.includes
이 예제 메소드는 배열에서 값을 검색하는 작업을 단순화합니다.
-
지수 연산자
ES2016 전에 지수 작동은 math.pow (기본, 지수)를 사용하여 수행 할 수 있습니다. 이 버전은 자체 우선 순위가있는 연산자 (**)를 소개합니다.
es2017
ES2017 (일명 ES8)은 유용한 방법과 구문 구조를 포함하는 약간 더 큰 버전입니다.
Async 함수
약속은 콜백 지옥에서 우리를 구출했지만 그들의 API는 여전히 장황을 보이고 있습니다. 비동기 함수 동기 코드와 매우 유사한 동기 코드를 사용하여 추상화합니다.
문자열 채우기 메소드
string.prototype.PadStart (길이, 패더) 및 Padend (길이, Padder)는 문자열의 시작과 끝에서 Padder를 반복적으로 추가합니다 (길이 문자에 도달 할 때까지 선택 사항, 공백으로 기본적) :
.
기타 기능에는 후행 쉼표, 공유 메모리 및 원자 연산 및 정적 객체 메소드 (Object.Entries (), Object.Values () 및 Object.GetOwnProperTyDescriptors ())가 포함됩니다.
es2018
글을 쓰는 시점 에서이 최신 릴리스는 소수의 강력한 새로운 기능을 소개합니다.
비동기 반복자
약속 .All ()을 사용하면 여러 약속의 구문 분석을 기다릴 수 있지만 경우에 따라 검색 된 값을 비동기 적으로 반복해야 할 수도 있습니다. 이제 약속 배열로 비동기 반복기를 기다릴 수 있습니다.// ES2016 之前:
const hasBob = names.indexOf('bob') > -1;
// ES2016:
const hasBob = names.includes('bob');
로그인 후 복사
객체 확장 및 나머지 속성 <🎜
표면적으로,이 두 개의 구문 개선은 Babel과 같은 컴파일러의 가용성으로 인해 JavaScript 개발자들 사이에서 인기를 얻었습니다. 물체 확장 및 잔류 특성은 배열 확장 및 잔류 특성과 유사하며 객체 속성의 얕은 복사 및 그룹화 해체를 허용합니다.
기타 허용되는 제안에는 Promise.Prototype.finally () 및 정규 표현 및 템플릿 리터럴에 대한 개선 사항이 포함됩니다.
<🎜 🎜> <<> 결론
// ES2016 之前
Math.pow(5, 3); // => 125
// ES2016
5 ** 3; // => 125
로그인 후 복사
JavaScript는 매우 짧은 시간 안에 크게 발전했습니다. 이것은 ECMAScript 표준 및 TC39의 훌륭한 작업 때문이지만, 이전 JavaScript 버전 관리 및 개발의 안정성과 응집력이 부족하여 처음에는 힘든 여행이었습니다.
제안 프로세스가 비교적 성숙하기 때문에 언어는 실용적이고 통제 가능한 방식으로 만 개선 될 수 있습니다. 이것은 웹 개발자에게 좋은 시간입니다!
JavaScript 버전 관리에 대한 FAQS : ES6 및 ES2015
ES6과 ES2015의 주요 차이점은 무엇입니까?
es6 및 es2015는 본질적으로 동일합니다. ES6은 ECMA에 의해 국제적으로 표준화 된 ECMAScript 프로그래밍 언어의 여섯 번째 판입니다. ES2015는 ES6의 새로운 이름 일 뿐이며 발표 된 해를 반영합니다. 이름은 릴리스 연도를 반영하고 버전 번호를 제거하여 혼란 스러울 수 있습니다.
왜 ES6에서 ES2015로 이름을 바꾸는가?
릴리스 연도를 반영하고 버전 번호를 제거하기 위해 ES6에서 ES2015로 이름을 변경했습니다. 이러한 움직임은 혼란을 피하고 JavaScript가 지속적으로 업데이트되고 개선되는 역동적 인 언어임을 입증하는 것입니다. 새로운 이름 지정 규칙은 또한 언어 업데이트 및 개선의 규칙 성을 나타내는 데 도움이됩니다.
ES6/ES2015에 어떤 주요 기능이 소개됩니까?
es6/es2015는 변수 선언에 대한 및
를 포함하여 자바 스크립트에 대한 많은 새로운 기능을 소개합니다. 더 짧은 함수 구문의 화살표 기능, 문자열 보간을위한 템플릿 리터럴, 객체 지향 프로그래밍 클래스, 비동기 프로그래밍에 대한 약속, 약속. 코드 조직의 모듈 등.
ES6/ES2015 JavaScript 인코딩을 향상시키는 방법은 무엇입니까?
ES6/ES2015는 다양한 방식으로 JavaScript 인코딩을 향상시킵니다. 새로운 구문과 언어를보다 강력하고 사용하기 쉽게 만드는 기능을 소개합니다. 예를 들어, 화살표 기능은 기능 쓰기를위한 더 깨끗한 구문을 제공하는 반면, 약속은 비동기 작업을보다 쉽게 처리 할 수 있습니다. 모듈의 도입은 또한 코드를 더 잘 구성하여 관리 및 유지 관리를보다 쉽게 구성하는 데 도움이됩니다.
내 JavaScript 코드에서 ES6/ES2015 기능을 사용하는 방법은 무엇입니까?
JavaScript 코드의 ES6/ES2015 기능을 시작하려면 ES6 코드를 현재 브라우저에서 실행할 수있는 ES5 코드로 변환하는 Babel과 같은 번역기를 사용할 수 있습니다. 또한 Webpack과 같은 모듈 패커를 사용하여 JavaScript 모듈을 관리하고 묶을 수도 있습니다. ES6/ES2015에 호환성 문제가 있습니까?
ES6/ES2015의 대부분의 기능은 대부분의 최신 브라우저에서 지원되지만 이전 브라우저에는 일부 호환성 문제가있을 수 있습니다. 호환성을 보장하기 위해 브라우저에서 기본 지원을 기대하는 기능을 제공하는 PolyFill을 사용할 수 있습니다.
JavaScript와 ecmascript의 차이점은 무엇입니까?
JavaScript는 NetScape에서 원래 개발 한 프로그래밍 언어입니다. ECMAScript는 ECMA에 의해 국제적으로 표준화되는 JavaScript 표준 버전입니다. JavaScript는 ECMAScript를 구현하므로 ECMAScript 표준에 정의 된 규칙 및 구조를 따릅니다.
ES6/ES2015 이후 JavaScript의 미래는 무엇입니까?
ES6/ES2015 이후 /> JavaScript는 매년 새로운 버전이 출시되며 각 버전은 새로운 기능과 개선 사항을 소개합니다. JavaScript의 미래는 다양한 플랫폼과 장치에서 더 강력한 기능, 더 나은 성능 및 더 높은 호환성을 볼 수 있습니다.
TypeScript와 ES6/ES2015의 관계는 무엇입니까?
typeScript는 언어에 정적 유형을 추가하는 JavaScript의 슈퍼 세트입니다. ES6/ES2015의 모든 기능과 JavaScript에서는 찾을 수없는 추가 기능도 지원합니다. TypeScript 코드는 JavaScript로 변환되므로 모든 JavaScript 환경에서 실행될 수 있습니다.
이전 버전의 JavaScript를 사용하는 것보다 ES6/ES2015를 사용하면 어떤 이점이 있습니까?
ES6/ES2015를 사용하면 이전 버전의 JavaScript와 비교하여 많은 이점이 제공됩니다. 새로운 구문과 언어를보다 강력하고 사용하기 쉽게 만드는 기능을 소개합니다. 또한 코드 조직과 유지 관리를 향상시키고 복잡한 응용 프로그램 및 대형 코드 기반을 더 잘 지원합니다.
위 내용은 ES6 (ES2015) 및 그 너머 : JavaScript 버전 이해 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!