Error: JavaScript is needed to render this site: please enable it.
This page discusses ECMAscript and its JavaScript and JScript implementations.
ECMAscript is a trademarked scripting language specification standardized by ECMA International. The various versions of JavaScript are implementations of ECMAscript created by the various browser makers, and the various versions of JScript are implementations of ECMAscript created by Microsoft. This site loosely uses the word ‘JavaScript’ to refer to any implementation of ECMAscript.
The formal specification for JavaScript is ECMA-262. Free versions are online:
It is important to note that no version of JavaScript is a complete implementation of any version of ECMAscript: each browser maker’s implementation lacks elements of the ECMASCript standards, and each implementation offers features not in any ECMAscript standard.
See Also: [1] Wikipedia’s ECMAscript article discusses the various versions of ECMAscript, JavaScript, and JScript, and their support by the various browsers; [2] ECMAscript 2021 Language Specification is the specification for the latest version of ECMAscript, the 12th edition, published in 2021; [3] ECMAScript 2021 (12th Edition) Internationalization API Specification is the specification for the lastest version of the ECMAscript Internationalization APIs.
The Document Object Model — commonly referred to as the ‘DOM’ — is an application programming interface which treats an HTML, xHTML, or XML document as a tree structure which JavaScript can query and modify to produce interactive web documents. Standardization of the DOM is less formal than the standardization of the DOM, but they are similar inasmuch as each browser supports different ways for JavaScript to interact with its DOM.
The various versions of the DOM, and their support by the various browsers, is discussed in detail in Wikipedia’s Document Object Model article.
Because each browser implements a different version of JavaScript, you must be very cautious when using JavaScript in websites. You must be aware that newer browsers will implement features of newer versions of ECMAscript, and that each browser will implement somewhat different features than other browsers. It most cases it’s only feasible to use the basic core of JavaScript, and you may have to use various programming techniques — e.g. browser snifing and object detection — to ensure that your code will be compatible with the various browsers.
Because each browser supports a somewhat different version of the DOM, you must be doubly aware that newer browsers will implement features of newer versions of the DOM, and again you must use various programming techniques to ensure that your code will be compatible with the various browsers.
For example, this site uses JavaScript extensively: but most pages use only very basic features of JavaScript and the DOM; a few pages use more advanced features — chiefly features to use canvases — which should be okay because this site is mainly used by website designers, who are more likely to use the modern browsers which support these features.
There are two more issues of which you should be aware:
It is vital that you have a JavaScript manual which clearly and completely describes the JavaScript and DOM support of the various browsers, especially of the ancient browsers which are still in use.
An up-to-date manual is not necessarily an asset, because an older manual is more likely to discuss issues with those ancient browsers which are still in use.
It is vital that, when estimating the cost of developing a site, you must be aware that it costs significantly more to create new software than it’s to create new HTML and CSS.
To minimize software costs, you should do only what is necessary, not what seems cool, and you should maximize the use of proven, reüseable components.