Enriching a web page by
generating browser-specific HTML content or CSS styling,
inserting dynamic HTML content,
producing special audio-visual effects (animations).
Enriching a web user interface by
implementing advanced user interface components,
validating user input on the client side,
automatically pre-filling certain form fields.
Implementing a front-end web application with local or remote data storage.
browsers is called "ECMAScript 5.1", or simply "ES5", but the next two versions, called "ES6" and
"ES7" (or "ES 2015" and "ES 2016"), are already partially supported by
current browsers and back-end JS environments. In fact, in May 2017, ES6 is
fully supported in non-mobile browsers, except its important new
but in a different way than classical OO programming languages such as
not first-class citizens. Rather, classes have to be defined by following
some code pattern in the form of special JS objects: either as constructor functions (possibly using the
syntactic sugar of ES6
class declarations) or as factory objects.