Content deleted Content added
Track Tags: Reverted Visual edit Mobile edit Mobile web edit |
ClueBot NG (talk | contribs) m Reverting possible vandalism by 41.45.154.190 to version by MSWS. Report False Positive? Thanks, ClueBot NG. (4412224) (Bot) |
||
(30 intermediate revisions by 27 users not shown) | |||
Line 5:
| designer = [[Brendan Eich]], [[Ecma International]]
| typing = [[weak typing|weak]], [[dynamic typing|dynamic]]
| implementations = [[JavaScript]], [[ActionScript]], [[JScript]], [[QtScript]],
| website = {{URL|https://www.ecma-international.org/publications-and-standards/standards/ecma-262/}}
| year = {{Start date and age|1997}}
Line 23:
| owner = [[Sun Microsystems]],<br/>[[Ecma International]]
| released = {{Start date and age|1997|06}}
| latest release version = Edition
| latest release date = {{start date and age|
| genre = [[Scripting language]]
| container for =
Line 31:
| extended to =
| standard =
| url = [https://www.ecma-international.org/publications-and-standards/standards/ Standards]
}}
'''
|last1 = Stefanov
|first1 = Stoyan
Line 48:
|archive-url = https://web.archive.org/web/20160610005241/https://books.google.com/books?id=WTZqecc9olUC
|url-status = live
}}</ref> is a standard for scripting languages, including [[JavaScript]], [[JScript]], and [[ActionScript]]. It is
ECMAScript is commonly used for [[client-side scripting]] on the [[World Wide Web]], and it is increasingly being used
== ECMAScript, ECMA-262, JavaScript ==
'''ECMA-262''', or the ''ECMAScript Language Specification'', defines the ''ECMAScript Language'', or just '''ECMAScript'''.<ref>{{cite web |last=Guo |first=Shu-yu |date=2022-02-14 |title=ECMAScriptÂŽ 2022 Language Specification |url=https://tc39.es/ecma262/ |url-status=live |archive-url=https://web.archive.org/web/20200508053013/https://tc39.es/ecma262/ |archive-date=2020-05-08 |website=tc39
== History==
The ECMAScript specification is a standardized specification of a scripting language developed by [[Brendan Eich]] of [[Netscape Communications Corporation|Netscape]]; initially named Mocha, then LiveScript, and finally JavaScript.<ref>{{cite web |last=Krill |first=Paul |date=2008-06-23 |title=JavaScript creator ponders past, future |url=http://www.infoworld.com/article/2653798/application-development/javascript-creator-ponders-past--future.html |url-status=live |archive-url=https://web.archive.org/web/20140920141040/http://www.infoworld.com/article/2653798/application-development/javascript-creator-ponders-past--future.html |archive-date=2014-09-20 |access-date=2013-10-31 |website=infoworld.com |publisher=InfoWorld}}</ref> In December 1995, [[Sun Microsystems]] and Netscape announced JavaScript in a press release.<ref>{{cite web |date=1995-12-04 |title=Netscape and Sun announce JavaScript, the Open, Cross-platform Object Scripting Language for Enterprise Networks and the Internet |url=http://wp.netscape.com/newsref/pr/newsrelease67.html |url-status=dead |archive-url=https://web.archive.org/web/20020606002913/http://wp.netscape.com/newsref/pr/newsrelease67.html |archive-date=2002-06-06 |access-date=2019-11-04 |website=Netscape.com |publisher=Netscape}}</ref> In November 1996, Netscape announced a meeting of the [[Ecma International]] standards organization to advance the standardization of JavaScript.<ref>{{cite web |last=Press Release |date=November 15, 1996 |title=Industry Leaders to Advance Standardization of Netscape's JavaScript at Standards Body Meeting |url=http://cgi.netscape.com/newsref/pr/newsrelease289.html |url-status=dead |archive-url=https://web.archive.org/web/19981203070212/http://cgi.netscape.com/newsref/pr/newsrelease289.html |archive-date=1998-12-03 |access-date=2013-10-31 |website=Netscape.com |publisher=Netscape}}</ref> <!-- Should add that Jscript is also from EMCAScript -->The first edition of ECMA-262 was adopted by the Ecma General Assembly in June 1997. Several editions of the language standard have been published since then. The name "ECMAScript" was a compromise between the organizations involved in standardizing the language, especially Netscape and Microsoft, whose disputes dominated the early standards sessions. Eich commented that "ECMAScript was always an unwanted trade name that sounds like a [[eczema|skin disease]]."<ref>{{cite web |last=Eich |first=Brendan |date=2006-10-03 |title=Will there be a suggested file suffix for es4? |url=https://mail.mozilla.org/pipermail/es-discuss/2006-October/000133.html |url-status=live |archive-url=https://web.archive.org/web/20200621202321/https://mail.mozilla.org/pipermail/es-discuss/2006-October/000133.html |archive-date=2020-06-21 |access-date=2021-05-05 |website=mozilla.org |publisher=Mail.mozilla.org}}</ref> ECMAScript has been formalized through
"ECMA" stood for "European Computer Manufacturers Association" until 1994.
===
{{Main|ECMAScript version history}}
Ecma's Technical Committee 39 (TC39) is responsible for the maintenance of ECMAScript.<ref>{{Citation |title=TC39 |work=Technical Committees |url=https://ecma-international.org/technical-committees/tc39 |access-date=2024-08-11 |publisher=Ecma International |language=en-US}}</ref> New proposals to the language go through a staged process, with each stage representing the completeness of the proposal's specification. Consensus must be reached within the committee to advance a proposal to the next stage. Proposals that reach stage 4, the final stage, will be included into the next version of the standard.<ref>{{Citation |title=The TC39 Process |work=TC39 |url=https://tc39.es/process-document |access-date=2024-08-11 |publisher=Ecma International}}</ref> Since the release of version 6 in June 2015, new major versions have been finalized and published every June.<ref>{{Citation |title=ECMAScript, TC39, and the History of JavaScript |work=ui.dev |url=https://ui.dev/ecmascript |access-date=2024-08-11}}</ref>
== Features ==
{{expand section|date=February 2017}}
The ECMAScript language includes [[structured programming|structured]], [[dynamic programming language|dynamic]], [[functional programming|functional]], and [[prototype-based programming|prototype-based]] features.<ref>{{cite web |url=http://www.ecmascript.org/about.php |title=About |publisher=ECMAScript |access-date=2009-12-17 |url-status=dead |archive-url=https://archive.today/20120802115457/http://www.ecmascript.org/about.php |archive-date=2012-08-02 }}</ref>
=== Imperative and structured ===
ECMAScript JavaScript<!-- How to make clearer? --> supports [[C (programming language)|C]]
Like C-style languages, [[control flow]] is done with the {{Code|code=while}}, {{Code|code=for}}, {{Code|code=do}} / {{Code|code=while}}, {{Code|code=if}} / {{Code|code=else}}, and {{Code|code=switch}} statements.<!-- missing Labels / Functions --> Functions are weakly typed and may accept and return any type. Arguments not provided default to {{Code|code=undefined}}.
=== Weakly typed ===
ECMAScript is [[weakly typed]]. This means that certain types are assigned implicitly based on the operation being performed. However, there are several quirks in JavaScript's implementation of the conversion of a variable from one type to another.
=== Dynamic ===
Line 86 ⟶ 87:
Test262 is an ECMAScript conformance test suite that can be used to check how closely a JavaScript implementation follows the ECMAScript Specification. The test suite contains thousands of individual tests, each of which tests some specific requirement(s) of the ECMAScript specification. The development of Test262 is a project of the Ecma Technical Committee 39 (TC39). The testing framework and the individual tests are contributed to Ecma by member organizations of TC39.
Important contributions were made by Google ([[Sputnik
The Test262
{| class="wikitable sortable"
Line 96 ⟶ 97:
! scope="col" colspan="4" | Conformance<ref>ES5 is the baseline for this test suite. The conformance rate for other editions reflects support for new features only, not a comprehensive score.</ref>
|-
!scope="col" | ES5<ref name="kangax5">{{cite web |
!scope="col" | ES6 (2015)<ref name="kangax6">{{cite web |
!scope="col" |
!scope="col" |
|-
!scope="row" | [[SpiderMonkey]]
| [[Firefox]]
| 100% || 98% ||
|-
!scope="row" | [[V8 (JavaScript engine)|V8]]
| [[Google Chrome]]
| 100% || 98% ||
|-
!scope="row" | [[JavaScriptCore]]
| [[Safari (web browser)|Safari]]
|
|}
== See also ==
* [[ECMAScript for XML]] (E4X)
* [[List of ECMAScript engines]]
Line 123 ⟶ 122:
{{Reflist|colwidth=30em}}
{{
{{ECMAScript}}
{{Ecma International Standards}}
Line 129 ⟶ 128:
{{List of IEC standards}}
[[Category:Ecma standards]]
[[Category:Object-based programming languages]]
[[Category:Programming languages with an ISO standard]]
[[Category:Scripting languages]]
[[Category:Source-to-source compilers]]
|