|Paradigm||Multi-paradigm: prototype-based, functional, imperative|
|Designed by||Brendan Eich, Ecma International|
|Typing discipline||weak, dynamic|
|Self, HyperTalk, AWK, C, CoffeeScript, Perl, Python, Java, Scheme|
|Internet media type|
|Developed by||Sun Microsystems,|
|Initial release||June 1997|
|Type of format||Scripting language|
ECMAScript is commonly used for client-side scripting on the World Wide Web, and it is increasingly being used to write server-side applications and services using Node.js and other runtime environments.
Main article: ECMAScript version history
The ECMAScript language includes structured, dynamic, functional, and prototype-based features.
var, but ECMAScript 2015 added the keywords
Like C-style languages, control flow is done with the
switch statements. Functions are weakly typed and may accept and return any type. Arguments not provided default to
ECMAScript is dynamically typed. Thus, a type is associated with a value rather than an expression. ECMAScript supports various ways to test the type of objects, including duck typing.
Important contributions were made by Google (Sputnik testsuite) and Microsoft who both contributed thousands of tests. The Test262 testsuite consisted of 38014 tests as of January 2020[update]. ECMAScript specifications through ES7 are well-supported in major web browsers. The table below shows the conformance rate for current versions of software with respect to the most recent editions of ECMAScript.
|Scripting engine||Reference application(s)||Conformance|
|ES5||ES6 (2015)||ES7 (2016)||Newer (2017+)|
|V8||Google Chrome 95, Microsoft Edge 95, Opera 80||100%||98%||100%||100%|
((cite journal)): CS1 maint: date and year (link)