답변:
ECMAScript가 언어 인 반면 JavaScript, JScript 및 ActionScript 3도 "방언"이라고합니다. Wikipedia 는 이것에 대해 약간의 조명을 제공합니다.
나는 약간의 역사 교훈이 있다고 생각합니다.
JavaScript는 원래 Mocha라는 이름으로 Livescript로 변경되었지만 궁극적으로 JavaScript가되었습니다.
JavaScript가 ECMAscript 이전에 왔으며 그 역사가 그 이유를 알려줍니다.
처음부터 JavaScript는 Java에서 이름을 파생 시켰으며, 처음에는 JS 제작자 인 Brendan Eich가 Netscape 용 웹용 Java와 유사한 언어를 개발하도록 요청 받았습니다.
그러나 Eich는 Java가 모든 규칙으로 인해 너무 복잡하다고 판단하여 초보자조차도 코딩 할 수있는 더 간단한 언어를 만들기로 결정했습니다. 이는 세미콜론이 필요하지 않은 것처럼 분명합니다.
언어가 완성 된 후 Netscape의 마케팅 팀은 Sun에게 자바 스크립트로 마케팅 스턴트로 이름을 지정할 수 있도록 요청했습니다. 따라서 JavaScript를 사용하지 않은 대부분의 사람들이 Java와 관련이 있다고 생각하는 이유는 무엇입니까?
브라우저에서 JavaScript가 릴리스 된 후 약 1 년 또는 2 년 후 Microsoft의 IE는이 언어를 사용하여 JScript와 같은 자체 구현을 시작했습니다. 동시에 IE는 시장을 장악했으며 Netscape가 프로젝트를 종료 한 지 얼마되지 않아 시장을 지배했습니다.
Netscape가 중단되기 전에 ECMAScript라는 JavaScript 경로를 안내하는 표준을 시작하기로 결정했습니다.
ECMAScript에는 몇 가지 릴리스가 있었으며 1999 년에는 향후 10 년 동안 최대 절전 모드로 전환되기 전에 마지막 버전 (ECMAScript 3)을 릴리스했습니다. 이 10 년 동안 Microsoft는이 분야를 장악했지만 동시에 제품을 개선하지 않았기 때문에 Firefox (Eich가 주도)와 Chrome, Opera와 같은 다른 브라우저가 탄생했습니다.
ECMAScript는 2009 년에 5 번째 버전 (4 번째 버전은 폐기 됨)을 엄격 모드와 같은 기능으로 출시했습니다. 그 이후로 ECMAScript는 많은 추진력을 얻었으며 지금까지 가장 큰 변화로 몇 개월 만에 6th Edition을 발표 할 예정입니다.
ECMAScript 6의 기능 목록 ( http://kangax.github.io/es5-compat-table/es6/) 및 브라우저 지원을 사용할 수 있습니다 . CoffeeScript와 마찬가지로 Ecmascript 6 작성을 시작하고 컴파일러를 사용하여 Ecmascript 5로 컴파일 할 수도 있습니다.
ECMAScript가 언어인지 JavaScript가 방언인지는 논쟁의 여지가 있지만 중요하지는 않습니다. 이렇게 생각하면 혼란 스러울 수 있습니다. ECMAScript를 실행할 컴파일러는 없으며 JavaScript는 ECMAScript라는 표준을 구현하는 언어로 간주됩니다.
ECMAScript를 구현하는 ActionScript (Flash 용)와 같은 다른 눈에 띄는 언어도 있습니다.
ECMAScript = ES :
ECMAScript는 스크립팅 언어의 표준입니다.
Javascript와 같은 언어는 ECMAScript 표준을 기반으로합니다.
ECMA 표준은 JavaScript (Netscape) 및 JScript (Microsoft)로 잘 알려진 여러 가지 초기 기술을 기반으로합니다.
ECMA는 유럽 컴퓨터 제조업체 협회를 의미합니다
자바 스크립트 = JS :
JavaScript는 ECMAScript Standard의 가장 보편적 인 구현입니다.
Javascript의 핵심 기능은 ECMAScript 표준을 기반으로하지만 Javascript에는 ECMA 사양 / 표준에없는 다른 추가 기능도 있습니다.
ActionScript 및 JScript는 ECMAScript를 구현하는 다른 언어입니다.
JavaScript는 표준화를 위해 ECMA에 제출되었지만 Javascript라는 이름의 상표 문제로 인해 표준이 ECMAScript가되었습니다.
모든 브라우저에는 JavaScript 인터프리터가 있습니다.
ES5 = ECMAScript 5 :
ES5는 ECMAScript의 버전입니다 (이전 / 현재 버전).
ES5는 오늘날 브라우저에서 알고 사용하는 JavaScript입니다.
ES5는 오늘날의 브라우저에서 실행될 무언가로 변환하는 빌드 단계 (변환기)가 필요하지 않습니다.
ECMAScript 버전 5는 2009 년 12 월에 완료되었으며 모든 주요 브라우저 (Chrome, Safari, Firefox 및 IE)의 최신 버전은 버전 5를 구현했습니다.
버전 5.1은 2011 년 6 월에 완료되었습니다.
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015 :
ES2015는 ECMAScript의 버전입니다 (새로운 / 미래 버전).
ES6 대신 공식적으로 ES2015라는 이름을 사용해야합니다.
ES6는 TypeScript 및 CoffeeScript에서 해결 된 많은 핵심 언어 단점을 해결합니다.
ES6은 다음 JavaScript 반복이지만 오늘날의 브라우저에서는 실행되지 않습니다.
브라우저에서 실행하기 위해 ES5를 내보낼 수있는 트랜스 파일러가 많이 있습니다.
BabelJS :
BabelJS는 새로운 JavaScript ES6를 Old JavaScript ES5로 변환하는 가장 인기있는 변환기입니다.
BabelJS는 오늘날 차세대 JavaScript를 작성할 수있게합니다 (ES2015를 의미).
BabelJS는 단순히 ES2015 파일을 가져 와서 ES5 파일로 변환합니다.
현재 브라우저 버전은 새로운 JavaScript 코드 (ES2015)를 아직 지원하지 않더라도 이해할 수 있습니다.
TypeScript 및 CoffeeScript :
둘 다 ES5 위에 구문 설탕을 제공 한 다음 ES5 호환 JavaScript로 트랜스 컴파일됩니다.
TypeScript 또는 CoffeeScript를 작성하면 변환기가이를 ES5 JavaScript로 변환합니다.
JavaScript = ECMAScript + DOM + BOM ;
ECMAScript® 언어 사양은 객체, 배열, 숫자 등을 생성하고 편집하기위한 모든 논리를 정의합니다.
DOM은 ( D ocument O bject M ODEL)이 가능 HTML / XML 문서 (예 :와 통신 할 수 있습니다 document.getElementById('id');
).
BOM은 ( B rowser O bject M ODEL) 브라우저 물체 (객체 위치, 이력 객체 폼 요소)의 계층 구조이다.
JavaScript 명명의 역사 :
Mocha ► LiveScript ► JavaScript ► (JS의 일부) ECMA-262 ► ECMAScript ► JavaScript (ECMAScript + DOM + BOM으로 구성)
JavaScript = ECMAScript + DOM API;
?
JavaScript = ECMAScript + DOM API;
은 JavaScript로 구성된 문서화 된 전체 용어를 기반으로합니다.
기술적으로 ECMAScript는 모든 사람이 사용하고 구현하는 언어입니다. Netscape와 Microsoft는 몇 년 전에 Netscape와 Microsoft가 JavaScript (Netscape의 스크립팅 언어)와 JScript (Microsoft) 사이의 스크립팅을 표준화하려고 시도했을 때 만들어진 사양입니다.
결과적으로 이러한 모든 엔진은 표면 상으로 ECMAScript를 구현하지만 JavaScript (이름)는 이제 기존의 명명 이유와 모질라의 다양한 비표준 확장 (실제로 "버전"을 원함)에 대한 마케팅 용어로 사용됩니다. )
ECMAScript 즉 ES 란 무엇입니까?
ECMAScript는 스크립팅 언어의 표준이며 Javascript 언어는 ECMAScript 표준을 기반으로합니다.
Javascript가 ECMAScript와 정확히 동일합니까?
JavaScript = ECMAScript + DOM API;
DOM API는 다음과 같습니다. document.getElementById('id');
다른 언어는 ECMAScript 표준을 사용합니까?
왜 ECMAScript라고 불리는가?
나는 이것이 오래된 게시물이라는 것을 알고 있지만 희망적으로 이것이 누군가를 도울 것입니다.
1990 년대에 다른 버전의 js는 netscape의 javascript, Microsoft의 Js script와 같이 시작되었습니다. 따라서 ecmascript가 표준으로 도입되었습니다. 그러나 ecmascript는 핵심 구문, 유형, 객체 등을 지정하는 javascript의 일부만 구성합니다. diff에서 일관성이없는 Javascript 구현을 설명합니다. 브라우저
참조-Wrox (웹 개발자를위한 전문 자바 스크립트)
기존 답변은 요점을 매우 잘 표현합니다.
요점은 ECMAScript는 도메인 특정 확장이없는 단순한 추상 언어이며 그 자체로는 쓸모가 없다는 것입니다. 사양 단지 언어를 정의하고, 코어는 그것의 객체.
JavaScript 및 ActionScript 및 기타 언어는 도메인 특정 라이브러리를 추가하므로 의미있는 것으로 사용할 수 있습니다.
많은 ECMAScript 엔진이 있으며 그중 일부는 오픈 소스이고 다른 하나는 독점입니다. 프로그램에 링크 한 다음 전역 함수에 고유 함수를 추가하여 프로그램을 스크립팅 할 수 있습니다. 가장 자주 그들은 브라우저에서 사용됩니다.
ECMAScript 는 JavaScrip t 의 표준입니다 . MDN 에서 다음 명령문을보십시오 .
JavaScript (JS) 는 일급 기능을 갖춘 경량의 해석 또는 JIT 컴파일 프로그래밍 언어입니다. 웹 페이지의 스크립트 언어로 가장 잘 알려져 있지만 node.js, Apache CouchDB 및 Adobe Acrobat과 같은 브라우저 이외의 많은 환경에서도이 언어를 사용합니다. JavaScript는 프로토 타입 기반의 다중 패러다임, 동적 언어로서 객체 지향, 명령형 및 선언적 (예 : 기능적 프로그래밍) 스타일을 지원합니다. JavaScript에 대해 자세히 알아보십시오.
JavaScript의 표준은 ECMAScript 입니다. 2012 년 현재 모든 최신 브라우저는 ECMAScript 5.1을 완벽하게 지원합니다. 이전 버전의 브라우저는 ECMAScript 3 이상을 지원합니다. 2015 년 6 월 17 일 ECMA International은 공식적으로 ECMAScript 2015라고하는 6 번째 주요 ECMAScript 버전을 발표했으며 처음에는 ECMAScript 6 또는 ES6이라고했습니다. 그 이후로 ECMAScript 표준은 매년 릴리스주기에 있습니다. 이 문서는 최신 ECMAScript 2018 초안을 나타냅니다.
내 결과는 다음과 같습니다.
David Flanagan이 작성한 JavaScript : Definitive Guide 는 매우 간결한 설명을 제공합니다.
JavaScript는 웹 초기에 Netscape에서 작성되었으며 기술적으로 "JavaScript"는 Netscape (현재 Mozilla)의 언어 구현을 설명하는 데 사용되는 Sun Microsystems (현재 Oracle)로부터 라이센스를받은 상표입니다. Netscape는 표준화를위한 언어를 ECMA에 제출했으며 상표 문제로 인해 표준화 된 언어 버전이 "ECMAScript"라는 어색한 이름으로 붙어있었습니다. 같은 상표 이유로 Microsoft의 언어 버전은 공식적으로 "JScript"로 알려져 있습니다. 실제로 거의 모든 사람이 언어 JavaScript를 호출합니다.
Microsoft 의 블로그 게시물 은 Flanagan의 설명에 동의하는 것으로 보입니다 ..
ECMAScript는 우리 모두가 알고 사랑하는 JavaScript 언어의 공식 이름입니다.
.. 이 참조 게시물 (Microsoft에서 다시 한 번) JavaScript
에서 발생하는 모든 항목을 로 교체해야 한다고 생각합니다 . 그들은 실제로 사용에 신중한 것 같습니다ECMASCript
ECMAScript
에서만 이 , 최근 많은 기술 문서 페이지.
w3schools.com 은 위의 정의에 동의하는 것 같습니다.
JavaScript는 1995 년에 Brendan Eich가 발명했으며 1997 년 ECMA 표준이되었습니다. ECMA-262는 표준의 공식 이름입니다. ECMAScript는 언어의 공식 이름입니다.
여기서 핵심은 : 언어의 공식 명칭 .
Mozilla의 JavaScript 버전 페이지 를 확인하면 하면 다음 내용이 표시됩니다.
더 이상 사용되지 않습니다. 언어 기능의 명시 적 버전 관리 및 옵트 인은 Mozilla에 따라 다르며 제거 중입니다. Firefox 4는 JavaScript 버전 (1.8.5)을 언급 한 마지막 버전입니다. 새로운 ECMA 표준을 사용하면 ECMAScript 2015와 같은 ECMA-262 Edition의 초기 정의와 함께 JavaScript 언어 기능이 종종 언급됩니다.
최신 릴리스 정보가 표시되면 다음과 같은 ECMAScript 표준에 대한 참조가 항상 표시됩니다.
ES2015 Symbol.toStringTag 속성이 구현되었습니다 (버그 1114580).
ES2015 TypedArray.prototype.toString () 및 TypedArray.prototype.toLocaleString () 메소드가 구현되었습니다 (버그 1121938).
Mozilla Web Docs에는 ECMAScript와 JavaScript의 차이점을 설명 하는 페이지 도 있습니다 .
그러나 웹 브라우저 컨텍스트에서 이해되는 "JavaScript"라는 용어에는 여러 가지 다른 요소가 포함되어 있습니다. 그중 하나는 핵심 언어 (ECMAScript)이고 다른 하나는 DOM (Document Object Model)을 포함한 웹 API 모음입니다.
결론
이해하기 위해 사람들은 핵심 ECMAScript 사양을 지칭하기 위해 JavaScript라는 단어를 다소 자유롭게 사용합니다.
모든 최신 JavaScript 구현 (또는 JavaScript 엔진)은 실제로 ECMAScript 구현입니다. Google 에서 V8 엔진 의 정의를 확인하십시오 ( 예 :
V8은 Google의 오픈 소스 고성능 자바 스크립트 엔진으로 C ++로 작성되었으며 Chrome, Google의 오픈 소스 브라우저 및 Node.js 등에서 사용됩니다. ECMA-262에 지정된 ECMAScript를 구현합니다.
그들은 JavaScript와 ECMAScript라는 단어를 서로 바꾸어 쓰는 것으로 보이며 실제로 ECMAScript 엔진이라고 말할 것입니까?
따라서 대부분의 JavaScript 엔진은 실제로 ECMAScript 표준을 구현하지만 ECMAScript 엔진을 호출하는 대신 JavaScript 엔진이라고합니다. 이 답변은 상황을 보는 방식도 지원합니다.
"JavaScript"라는 이름이 Sun의 소유라는 사실이 아니라면 "ECMAScript"라는 단어를 사용하지 않았을 것입니다. 모든 의도와 목적을 위해 언어는 JavaScript입니다. ECMAScript 서적을 찾고있는 서점에 가지 않습니까?
"JavaScript"가 구현이라고 말하기에는 너무 간단합니다. JScript는 Microsoft의 구현입니다.