JavaScript (JS) is the dominant client-side scripting language of the Web. JS is a dynamic (or interpreted: Executes somethings at run-time instead of at compiling), weakly-typed (or loosely-typed: A variable may change its data type), prototype-based (object oriented but instead of classes, the .prototype of an instance affects all other instances) programming language with first-class functions (functions can be first-class objects which allows their creation and modification at run-time) and closures (functions can enclosed as a parameter of another function AND can refer to bound variables, i.e. variables visible at the time the enclosing function was defined).

History

JavaScript was developed by Brendan Eich at Netscape Communications Corporation, first as Mocha, then as LiveScript, then as JavaScript as part of the Netscape browser v2.0B3 in 1995-12. JavaScript has no relation to Java other than they both use a syntax similar to the c language and that Java was the hot new language at the time. EG: c is a procedural language, while c++ is class-based object oriented language, while JavaScript is a prototype-based object oriented language (like the language Self). JavaScript became widely popular and Microsoft implemented it as JScript in Internet Explorer 3.0 in 1996-08. Netscaped submitted JavaScript to Ecma International for standardization, which resulted in ECMA-262 or ECMAScript in 1997-06. Since then ECMAScript is the standard and it has various dialects, some with their own extensions, and some (EG: Flash's ActionScript) that are quite different. The main dialects includes Netscape's/Mozilla's JavaScript and Microsoft's JScript.

DateJavaScriptJScriptECMAScriptActionScript
1996-031 in NS 2
1996-081.1 in NS 31 in IE 3
1997-012 in IIS 3
1997-061.2 in NS 41
1997-103 in IE 4 and VS 6
1998-062
1998-101.3 in NS 4.06
1998-101.4 in NS 4.7
1999-035 in IE 5
1999-123
200031 in Flash Player 5
2000-075.5 in IE 5.5
2000-111.5 in NS 6 and FF 1
2001-105.6 in IE 6
200332 in Flash Player 7
2005-111.6 in FF 1.5
2006-0633 in Flash Player 9
2006-101.7 in FF 2
2006-115.7 in IE 7
2008-101.8 in FF 3
2009-035.8 in IE 8
2009-125. (4 was abandoned.)
Soon1.9 in FF 4

Variations

JavaScript is famous for its "client-side" use, i.e. on the user's browser.There are several major rendering engines or application frameworks (each used by one or more browsers), and each rendering engine has its own JavaScript engine. JavaScript may also be used on the "server-side" and other scenarios.

Libraries

Except for the simplest of sites, it seems that the days are slipping when you could make a site with your own HTML, CSS, AJAX, and JavaScript on the client-side, plus whatever on the server-side. See http://www.surveymonkey.com/sr.aspx?sm=fXLiKcnKlD6cO5bRe961aBB6NCCWytRyY3rParAYmwA_3d. Now it seems that you have to use a library, as in the old build v buy argument. It's not simply for pretty stuff but for serious business stuff like data grids. They're calling them {AJAX | Widget | Web App} {Toolkits | Frameworks} these days. You can simply call them JavaScript libraries on the client-side, but on the server-side it's usually some other language generating JavaScript, CSS, and HTML for the client-side.

The top client-side JavaScript libraries are (in rough order):

The top server-side "JavaScript" libraries include:

There are libraries with more specific uses that are often included. Here are a few arbitrary ones:

Miscellany

Here are some miscellaneous items regarding JavaScript.

Page Modified: (Hand noted: 2008-03-17 22:30:42Z) (Auto noted: 2010-02-12 22:19:08Z)