About company Our development services Portfolio. Case studies Support Testimonials Contacts Brutka Ltd: web site development and custom software development


Software Solution
Application Type
Technology Domain

Phrase of the day

Never trust a computer you can't throw out a window.
Never trust a computer you can't throw out a window.
Steve Wozniak


JavascriptJavaScript is the name of Netscape Communications Corporation's implementation of ECMAScript, a scripting programming language based on the concept of prototypes. The language is best known for its use in websites, but is also used to enable scripting access to objects embedded in other applications.

Despite the name, JavaScript is only distantly related to the Java programming language, the main similarity being their common debt to the C programming language syntax. Semantically, JavaScript has far more in common with the Self programming language and ActionScript which is also an ECMAScript.

JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape.
JavaScript is a prototype-based scripting language with a syntax loosely based on C. Like C, the language has no input or output constructs of its own. Where C relies on standard I/O libraries, a JavaScript engine relies on a host environment into which it is embedded. There are many such host environment applications, of which web technologies are the best-known examples. These are examined first.

One major use of web-based JavaScript is to write functions that are embedded in or included from HTML pages and interact with the Document Object Model (DOM) of the page to perform tasks not possible in HTML alone. Some common examples of this usage follow.

Opening or popping up a new window with programmatic control over the size, position and 'look' of the new window (i.e. whether or not the menus, toolbars etc are visible; usually JavaScript is used to ensure that they are not)
If this degree of control is not required, JavaScript is not necessary. Simply adding the attribute target="xxx" to the link element in HTML will reliably produce a new window the same size as the current one, with menus etc displayed as per the user's preferences. Note that many browsers now include mechanisms that, by default, block all JavaScript pop-ups, displaying only a small message to say that they have done so.
Checking or validating web form input values to make sure that they will be accepted before they are submitted to the server
There is always a time delay, and a processing overhead on the server, when a form has to be submitted. Nonetheless input validation should be repeated at the server in case the JavaScript failed to run (see below).
Changing images as the mouse cursor moves over them
This effect is still enjoyed by many designers, often to draw the user's attention to important links displayed as graphical elements. This "rollover" effect can also be implemented with CSS in recent browsers. With a mind for visually impaired users, who may be using extreme text magnification that makes non-resizing graphics largely irrelevant, others are moving away from this approach.
The DOM interfaces in various browsers differ and don't always match the W3C DOM standards. Rather than write different variants of a JavaScript function for each of the many browsers in common use today, it is usually possible, by carefully following the W3C DOM Level 1 or 2 standards, to provide the required functionality in a standards-compliant way that most browsers will execute correctly. Care must always be taken to ensure that the web page degrades gracefully and so is still usable by any user who:

has JavaScript execution disabled - for example as a security precaution
has a browser that does not understand the JavaScript - for example on a PDA or mobile phone
is visually or otherwise disabled and may be using an unusual browser, a speech browser or may have selected extreme text magnification. For more information on this, see the Web Accessibility Initiative
Other examples of JavaScript interacting with a web page's DOM have been called DHTML and SPA.

A different example of the use of JavaScript in web pages is to make calls to web and web-service servers after the page has loaded, depending upon user actions. These calls can obtain new information, which further JavaScript can merge with the existing page's DOM so that it is displayed. This is the basis of Ajax programming.

Outside of the Web, JavaScript interpreters are embedded in a number of tools. Adobe Acrobat and Adobe Reader support JavaScript in PDF files. The Mozilla platform, which underlies several common web browsers, uses JavaScript to implement the user interface and transaction logic of its various products. JavaScript interpreters are also embedded in proprietary applications that lack scriptable interfaces. Dashboard Widgets in Apple's Mac OS X v10.4 are implemented using JavaScript. Microsoft's Active Scripting technology supports JavaScript-compatible JScript as an operating system scripting language. JScript .NET is a CLI-compliant language that is similar to JScript, but has further object oriented programming features. Tools in the Adobe Creative Suite, including Photoshop, allow scripting through JavaScript.

Each of these applications provides its own object model which provides access to the host environment, with the core JavaScript language remaining mostly the same in each application.

There is no real relationship between Java and JavaScript; their similarities are mostly in basic syntax because both are ultimately derived from C. Their semantics are quite different and their object models are unrelated and largely incompatible. Like C and C++, all Java variables and members are statically typed, whereas all JavaScript variables (as well as object properties and array elments) may hold a value of any type.

To avoid trademark issues, Microsoft named its implementation of the language JScript. JScript was first supported in Internet Explorer version 3.0, released in August 1996; when web developers talk about the use of JavaScript in the IE browser, they actually mean JScript.

The standardization effort for JavaScript also needed to avoid trademark issues, so the ECMA 262 standard calls the language ECMAScript (see external links below), three editions of which have been published since the work started in November 1996. The object model of browser-based JavaScript, the Document Object Model (DOM), is not part of the ECMAScript standard. It is defined in a set of separate standards, developed by the W3C and is applicable to the access and manipulation of HTML and XML documents in many computer languages and platforms.

Microsoft's own VBScript, like JavaScript, can be run client-side in web pages. VBScript has syntax derived from Visual Basic and will only run if the web pages are viewed in Internet Explorer.

ActionScript, the programming language used in Macromedia Flash, has some similarities to the ECMAScript standard, but does not conform to it.

JSON, or JavaScript Object Notation, is a general-purpose data interchange format that is defined as a subset of JavaScript.

JavaScript OSA (JavaScript for OSA, or JSOSA), is a Macintosh scripting language based on the Mozilla 1.5 JavaScript implementation, SpiderMonkey. It is a freeware component made available by Late Night Software. Interaction with the operating system and with third-party applications is scripted via a MacOS object. Otherwise, the language is virtually identical to the core Mozilla implementation. It was offered as an alternative to the more commonly used AppleScript language.

Of only historical interest now, ECMAScript was included in the VRML97 standard for scripting nodes of VRML scene description files.

JavaScript is also considered a functional programming language like Scheme and OCaml because it has closures and supports higher-order functions. The Little Javascripter shows the relationship with Scheme in more detail. It also has much in common with Python.

More about Javascript >>