JavaScript와 ECMAScript의 차이점은 무엇입니까?
ECMAScript와 JavaScript의 차이점은 무엇입니까?제가 추론한 바로는 ECMAScript가 표준이고 JavaScript가 구현입니다.이거 맞는건가요?
역사 수업을 좀 들어야 할 것 같아요.
자바스크립트는 원래 모카(Mocha)라는 이름으로 Livescript로 바뀌었으나 결국 자바스크립트가 되었다.
JavaScript가 ECMAscript보다 먼저 나왔다는 점에 유의하십시오.이력을 통해 그 이유를 알 수 있습니다.
처음부터 자바스크립트는 자바에서 이름을 따왔으며, 처음에는 브렌단 아이히(JS의 창시자)에게 넷스케이프용 웹용 자바와 유사한 언어를 개발하도록 요구받았다.
그러나 Eich는 Java가 모든 규칙이 너무 복잡하다고 판단하고 초보자도 코드화할 수 있는 간단한 언어를 만들기 시작했다.이것은 세미콜론이 있어야 할 필요성을 완화하는 것과 같은 것들에서 명백합니다.
언어가 완성되자 넷스케이프 마케팅팀은 Sun에게 마케팅 스턴트 차원에서 자바스크립트라는 이름을 붙일 수 있도록 해달라고 요청했다.
브라우저에 JavaScript가 출시된 지 약 1~2년 후, 마이크로소프트의 IE는 언어를 채택하여 JScript와 같은 자체 구현을 시작했다.동시에 IE는 시장을 장악하고 있었고 넷스케이프가 프로젝트를 종료한 지 얼마 되지 않았다.
넷스케이프가 다운되기 전에 그들은 ECMAScript라는 이름의 JavaScript의 경로를 안내하는 표준을 시작하기로 결정했다.
ECMAScript에는 몇 가지 릴리스가 있어 1999년에 최신 버전(ECMAScript 3)을 출시하고 나서 10년간 휴지 상태가 되었습니다.이 10년 동안 마이크로소프트는 시장을 지배했지만 동시에 그들은 그들의 제품을 개선하지 못했고, 그래서 파이어폭스가 탄생했고 (아이치가 주도) 크롬, 오페라 같은 다른 브라우저들이 많이 생겨났다.
ECMAScript는 2009년에 strict 모드 등의 기능을 갖춘 제5판을 출시했습니다(제4판은 폐기).그 후, ECMAScript는 큰 기세를 얻어, 지금까지의 가장 큰 변화를 수반하는 제6판을 수개월 후에 발매할 예정입니다.
ECMAScript 6 의 기능 리스트는, http://kangax.github.io/es5-compat-table/es6/ 를 참조해 주세요.CoffeeScript에서처럼 Ecmascript 6을 쓰기 시작하고 컴파일러를 사용하여 Ecmascript 5로 컴파일할 수도 있습니다.
ECMAScript가 언어이고 JavaScript가 방언인지 여부는 논란의 여지가 있지만 중요하지 않습니다.계속 이렇게 생각하면 혼란스러울 수도 있어요.ECMAScript를 실행하는 컴파일러는 존재하지 않으며, JavaScript는 ECMAScript라는 표준을 구현하는 언어로 간주됩니다.
또한 ActionScript(플래시에 사용됨)와 같은 ECMAScript를 구현하는 다른 주목할 만한 언어도 있습니다.
ECMAScript는 언어이지만 JavaScript, JScript 및 ActionScript 3은 "변호사"라고 불립니다.위키피디아는 이것을 조명한다.
ECMAScript = ES:
ECMAScript는 스크립트 언어 표준입니다.
Javascript와 같은 언어는 ECMAScript 표준을 기반으로 합니다.
ECMA Standard는 JavaScript(Netscape)와 JScript(Microsoft)를 비롯한 여러 원천 기술을 기반으로 합니다.
ECMA는 유럽 컴퓨터 제조자 협회(European Computer Manufacturer's Association)를 의미합니다.
JavaScript = 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를 내보내는 트랜스필러도 꽤 있다.
BabelJ:
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(Document Object Model)을 사용하면 HTML/XML 문서와 통신할 수 있습니다(예:
document.getElementById('id');
).BOM(Browser Object Model)은 브라우저 개체의 계층입니다(예: 위치 개체, 기록 개체, 양식 요소).
JavaScript 명명 내역:
Mocha live LiveScript java JavaScript ( ( JS의 일부 결과)ECMA-262 ec ECMAScript java JavaScript java ( ECMAScript + DOM + BOM )
ECMAScript는 모든 사람이 사용하고 구현하고 있는 언어입니다.이것은 Netscape와 Microsoft가 몇 년 전에 JavaScript(Netscape의 스크립트 언어)와 JScript(Microsoft의 스크립트 언어) 간에 스크립트를 표준화하려고 했을 때 작성된 규격입니다.
그 후 이들 엔진은 모두 표면적으로는 ECMAScript를 구현하고 있지만 자바스크립트(이름)는 기존의 명칭과 Mozilla의 다양한 비표준 확장자(실제로 "버전"을 원하는)에 대한 마케팅 용어로 사용되고 있습니다.
ECMAScript 규격에는 다양한 JavaScript 버전이 구현되어 있습니다.
ECMAScript는 '이론' 또는 '스펙션', Javascript는 '실용' 또는 '실장'으로 알고 있습니다.
오래된 게시물인 건 알지만 이게 누군가에게 도움이 되길 바라.
1990년대에 js의 다른 버전이 넷스케이프의 javascript, 마이크로소프트의 js 스크립트처럼 나오기 시작했다.그래서 ecmascript가 표준으로 도입되었습니다.그러나 ecmascript는 핵심 구문, 유형, 객체 등을 지정하는 javascript의 일부만을 형성합니다.여러 브라우저 간에 javascript의 일관성 없는 구현이 설명될 수 있습니다.
레퍼런스 - Wrox (Web 개발자용 Professional Javascript)
JavaScript는 ECMAScript 언어입니다.
ECMAScript는 반드시 JavaScript는 아닙니다.
기존의 답변들은 요점을 꽤 잘 바꾸어 말한다.
요점은 ECMAScript는 추상적인 언어이기 때문에 도메인 고유의 확장이 없으면 그 자체로 쓸모가 없다는 것입니다.사양은 언어와 그 핵심 객체만 정의합니다.
JavaScript, ActionScript 및 기타 방언은 도메인별 라이브러리를 추가하여 의미 있는 용도로 사용할 수 있습니다.
ECMAScript 엔진에는 오픈 소스 엔진과 독자 사양 엔진이 많이 있습니다.프로그램을 프로그램에 링크한 후 기본 함수를 글로벌 개체에 추가하여 프로그램을 스크립팅할 수 있습니다.대부분의 경우 브라우저에서 사용됩니다.
다음은 저의 조사 결과입니다.
JavaScript: David Flanagan이 쓴 이 가이드에서는 매우 간결한 설명을 제공합니다.
JavaScript는 웹 초창기에 Netscape에서 생성되었으며, 엄밀히 말하면 "JavaScript"는 Netscape(현재의 Mozilla)의 언어 구현을 기술하기 위해 사용되는 Sun Microsystems(현재의 Oracle)에서 라이센스를 받은 상표입니다.Netscape는 표준화를 위한 언어를 ECMA에 제출하였고 상표 문제로 인해 표준화된 언어의 버전은 "ECMAScript"라는 어색한 이름으로 고착되었다.같은 상표의 이유로 Microsoft의 언어 버전은 공식적으로 "JScript"로 알려져 있습니다.실제로 거의 모든 사람들이 자바스크립트라고 부릅니다.
A blog post by Microsoft seems to agree with what Flanagan explains by saying..
ECMAScript is the official name for the JavaScript language we all know and love.
.. which makes me think all occurrences of JavaScript
in this reference post (by Microsoft again) must be replaced by ECMASCript
. They actually seem to be careful with using ECMAScript
only in this, more recent and more technical documentation page.
w3schools.com seems to agree with the definitions above:
JavaScript was invented by Brendan Eich in 1995, and became an ECMA standard in 1997. ECMA-262 is the official name of the standard. ECMAScript is the official name of the language.
The key here is: the official name of the language.
If you check Mozilla 's JavaScript version pages, you will encounter the following statement:
Deprecated. The explicit versioning and opt-in of language features was Mozilla-specific and are in process of being removed. Firefox 4 was the last version which referred to a JavaScript version (1.8.5). With new ECMA standards, JavaScript language features are now often mentioned with their initial definition in ECMA-262 Editions such as ECMAScript 2015.
and when you see the recent release notes, you will always see reference to ECMAScript standards, such as:
The ES2015 Symbol.toStringTag property has been implemented (bug 1114580).
The ES2015 TypedArray.prototype.toString() and TypedArray.prototype.toLocaleString() methods have been implemented (bug 1121938).
Mozilla Web Docs also has a page that explains the difference between ECMAScript and JavaScript:
However, the umbrella term "JavaScript" as understood in a web browser context contains several very different elements. One of them is the core language (ECMAScript), another is the collection of the Web APIs, including the DOM (Document Object Model).
Conclusion
To my understanding, people use the word JavaScript somewhat liberally to refer to the core ECMAScript specification.
I would say, all the modern JavaScript implementations (or JavaScript Engines) are in fact ECMAScript implementations. Check the definition of the V8 Engine from Google, for example:
V8 is Google’s open source high-performance JavaScript engine, written in C++ and used in Google Chrome, the open source browser from Google, and in Node.js, among others. It implements ECMAScript as specified in ECMA-262.
They seem to use the word JavaScript and ECMAScript interchangeably, and I would say it is actually an ECMAScript engine?
So most JavaScript Engines are actually implementing the ECMAScript standard, but instead of calling them ECMAScript engines, they call themselves JavaScript Engines. This answer also supports the way I see the situation.
ECMAScript is a standard for JavaScript, look at these statements from MDN:
JavaScript
JavaScript (JS) is a lightweight interpreted or JIT-compiled programming language with first-class functions. While it is most well-known as the scripting language for Web pages, many non-browser environments also use it, such as node.js, Apache CouchDB and Adobe Acrobat. JavaScript is a prototype-based, multi-paradigm, dynamic language, supporting object-oriented, imperative, and declarative (e.g. functional programming) styles. Read more about JavaScript.
ECMAScript
The standard for JavaScript is ECMAScript. As of 2012, all modern browsers fully support ECMAScript 5.1. Older browsers support at least ECMAScript 3. On June 17, 2015, ECMA International published the sixth major version of ECMAScript, which is officially called ECMAScript 2015, and was initially referred to as ECMAScript 6 or ES6. Since then, ECMAScript standards are on yearly release cycles. This documentation refers to the latest draft version, which is currently ECMAScript 2018.
For more info, visit here
Javascript was the original name, meant to capitalize on the popularity of java. ECMA is the standards body that oversees the standard that was eventually put in place so the names are roughly equivalent.
Implementations have other names, like V8 or Rhino, etc.
I doubt we'd ever use the word "ECMAScript" if not for the fact that the name "JavaScript" is owned by Sun. For all intents and purposes, the language is JavaScript. You don't go to the bookstore looking for ECMAScript books, do you?
It's a bit too simple to say that "JavaScript" is the implementation. JScript is Microsoft's implementation.
JavaScript is one branch of languages formed around the ECMAScript standard. I believe ECMA is the European Computer Manufacturers Association, not that this is really relevant or anything.
Don't forget another popular language formed around the ECMA Script standard is ActionScript, used in Adobe Flash/Flex.
ReferenceURL : https://stackoverflow.com/questions/912479/what-is-the-difference-between-javascript-and-ecmascript
'programing' 카테고리의 다른 글
Larabel MariaDB errno:150 "외부 키 제약조건이 잘못 형성되었습니다" (0) | 2022.10.26 |
---|---|
이벤트 대상을 클릭하면 상위 요소가 아닌 요소 또는 하위 요소가 표시됩니다. (0) | 2022.10.06 |
PHP에 대한 AngularJS HTTP 게시 및 정의되지 않음 (0) | 2022.10.06 |
일반 Python 목록에 비해 NumPy의 장점은 무엇입니까? (0) | 2022.10.06 |
두 좌표 사이의 거리를 계산하는 함수 (0) | 2022.10.06 |