4. Overview
This section contains a non-normative overview of the ECMAScript
language.
ECMAScript is an object-oriented programming language for
performing computations and manipulating computational objects
within a host environment. ECMAScript as defined here is not
intended to be computationally self-sufficient; indeed, there are
no provisions in this specification for input of external data or
output of computed results. Instead, it is expected that the
computational environment of an ECMAScript program will provide not
only the objects and other facilities described in this
specification but also certain environment-specific host objects,
whose description and behaviour are beyond the scope of this
specification except to indicate that they may provide certain
properties that can be accessed and certain functions that can be
called from an ECMAScript program.
A scripting language is a programming language that is used to
manipulate, customise, and automate the facilities of an existing
system. In such systems, useful functionality is already available
through a user interface, and the scripting language is a mechanism
for exposing that functionality to program control. In this way,
the existing system is said to provide a host environment of
objects and facilities, which completes the capabilities of the
scripting language. A scripting language is intended for use by
both professional and non-professional programmers. To accommodate
non-professional programmers, some aspects of the language may be
somewhat less strict.
ECMAScript was originally designed to be a Web scripting
language, providing a mechanism to enliven Web pages in browsers
and to perform server computation as part of a Web-based
client-server architecture. ECMAScript can provide core scripting
capabilities for a variety of host environments, and therefore the
core scripting language is specified in this document apart from
any particular host environment.
Some of the facilities of ECMAScript are similar to those used
in other programming languages; in particular Java and Self, as
described in:
Gosling, James, Bill Joy and Guy Steele. The Java™ Language
Specification. Addison Wesley Publishing Co., 1996.
Ungar, David, and Smith, Randall B. Self: The Power of Simplicity.
OOPSLA '87 Conference Proceedings, pp. 227-241, Orlando, FL,
October 1987.