ECMAScript: Difference between revisions

Content deleted Content added
m capitalization
added author
Line 50:
}}</ref> is a standard for scripting languages, including [[JavaScript]], [[JScript]], and [[ActionScript]]. It is best known as a JavaScript standard intended to ensure the [[interoperability]] of [[web page]]s across different [[web browser]]s.<ref>{{cite journal |last1=Wirfs-Brock |first1=Allen |last2=Eich |first2=Brendan |date=2020-05-02 |title=JavaScript: The First 20 Years |journal=Proceedings of the ACM on Programming Languages |volume=4 |pages=1–189 |doi=10.1145/3386327 |doi-access=free |s2cid=219603695}}</ref> It is standardized by [[Ecma International]] in the document [https://www.ecma-international.org/publications-and-standards/standards/ecma-262/ ECMA-262].
 
ECMAScript is commonly used for [[client-side scripting]] on the [[World Wide Web]], and it is increasingly being used for server-side applications and services using runtime environments such as [[Node.js]],<ref>{{cite web | last=Wunder|first=C.|url=https://nodejs.org/en/docs/es6 | title=Node.js — ECMAScript 2015 (ES6) and beyond |website=Node.js}}</ref> [[Deno (software)|Deno]]<ref>{{cite web | url=https://www.infoworld.com/article/3644460/deno-joins-javascript-standards-effort.html | title=Deno joins JavaScript standards effort | date=14 December 2021 }}</ref> and [[Bun (software)|Bun]].<ref>https://bun.sh/docs#:~:text=or%2C%20more%20formally%2C-,ECMAScript,-)%20is%20just%20a bun</ref>
 
== ECMAScript, ECMA-262, JavaScript ==
Line 69:
 
=== Imperative and structured ===
ECMAScript JavaScript<!-- How to make clearer? --> supports [[C (programming language)|C]]-style structured programming. Previously, JavaScript only supported [[Scope (computer science)|function scoping]] using the keyword <code>var</code>, but ECMAScript 2015 added the keywords <code>let</code> and <code>const</code>, allowing JavaScript to support both block scoping and function scoping. JavaScript supports [[automatic semicolon insertion]], meaning that semicolons that normally terminate a statement in C may be omitted in JavaScript.<!-- Might imply EMCAScript doesn't support automatic semicolon insertion --><ref name="Flanagan2006">{{cite book|url=https://books.google.com/books?id=2weL0iAfrEMC|title=JavaScript: The Definitive Guide: The Definitive Guide|authorfirst=David |last=Flanagan|edition=5th|date=17 August 2006|publisher="O'Reilly Media, Inc."|isbn=978-0-596-5544710199-72|page=16|access-date=11 November 2019|archive-date=1 August 2020|archive-url=https://web.archive.org/webdetails/20200801065235/https://books.google.com/books?id=2weL0iAfrEMCjavascriptdefini0000flan|url-statusaccess=liveregistration}}</ref>
 
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}}.