Metaphorically speaking, WWW stands on three columns, the three core technologies: HTML, CSS and JavaScript. JavaScript is an untyped interpreted programming language, supported by all the modern major web-browsers and incorporated in the vast majority of web-sites. JavaScript is capable of working with all the basic data types (text, arrays and dates included), but being embedded in various environments it doesn’t include APIs for input-output operations.

Released in 1995 by Netscape, JS wasn’t supposed to be solely a client-side interpreted language – Netscape have released a server-side implementation the same year. But since then it evolved much further with Node.js being one of the most spread JS server-side runtimes and JS VMs now often met on mobile devices, servers and even inside PDF.

Still, JavaScript is most often is used for client-side interactivity. Inputs and submits, animation and some web-games, data gathering and transmitting often involve JavaScript, especially its Ajax group of technologies.

As far as JavaScript runs the code on the user side which enables faster website loading and more convenient usage of a site. Thanks to its versatility and flexibility it can be used in a huge bunch of applications and even inserted inside scripts written in other languages that makes this technology irreplaceable for fast and successful web programming.

Contemporary trend is shifting some of the tasks from the back-end to the front-end, and that automatically increases the use of JavaScript. That said, immediately brings up the standard issue of interpreted languages’ lack of speed, and since mobile devices are now dominating the web-surf speed and optimization matter. So there is a lot going on that direction, and there is an example of an important step to overcome some client-side speed issues – the implementation of JIT into some newest browsers.