JavaScript is a scripting language used to provide dynamic and interactive content on webpages. Also, server side JS allows the use of the same language on the server and client.

Besides being fast, JavaScript provides benefits like:

  • Reducing server traffic by validating user input in the browser before it is sent to the server.
  • Providing immediate feedback to the site's visitors so that they don't have to reload pages just to get error messages on form validations.
  • Allowing richer user interfaces with content changes on mouse hover, drag and drop gestures, and animations.

Client-side JavaScript is interpreted in the browser without requiring compilation. This allows interactive content to be included in HTML pages which would otherwise be static.

Server-Side JavaScript as run in NodeJS enables back-end access to databases, file systems, and servers. NodeJS is built on Google Chrome's JavaScript V8 Engine. NodeJS uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node can be a great solution for applications requiring I/O bound operations, data streaming etc. More details can be found here.

You should learn JavaScript because:

  • It's easy to learn.
  • It's versatile in the sense that it's multi-paradigm - supporting procedural, event based, object oriented and functional programming.
  • It can be used for the front-end and back-end.
  • It's Open Source.
  • JavaScript programming skills are in high demand.

This track is intended for widely supported JavaScript, for code that could be executed in almost all existing browsers. If you're looking to experiment with newer features of the language, try the ECMAScript track.

Help us explain this better! File a GitHub issue at if you have suggestions, or submit a patch with improvements to the file.

Try It!

If you've downloaded the command-line client and have JavaScript installed on your machine, then go ahead and fetch the first problem.

exercism fetch javascript

In order to be able to submit your solution, you'll need to configure the client with your Exercism API key.

exercism configure --key=YOUR_EXERCISM_KEY

When you've written a solution, submit it to the site. You'll have to configure the command-line client with your exercism API key before you can submit.

exercism submit PATH_TO_FILE