JavaScript

Join the JavaScript Track
JavaScript is a scripting language, primarily used for creating dynamic websites and programming web servers. It's a very popular language, and supports a variety of programming paradigms.
Track mentors

39 Mentors

Our mentors are friendly, experienced JavaScript developers who will help teach you new techniques and tricks.
Track students

14,286 Students

Join thousands of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

92 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About JavaScript

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.

Join the JavaScript track
'use strict';

var HelloWorld = function() {};

HelloWorld.prototype.hello = function(name) {
  name = name || 'World';
  return 'Hello, ' + name + '!';
};

module.exports = HelloWorld;

I learned so much by osmosis just from reading.

Exercism has been really wonderful for me. It was the first time that I ever contributed to an open source project (it's a nice feeling knowing that when people use Exercism I may have helped them in some way), how I learned JavaScript, and how I learned about testing and TDD. I learned so much by osmosis just from reading.

Relaxed. Encouraging. Supportive.

Meet the JavaScript Track mentors

Once you join the JavaScript language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Bethany Garcia

Bethany Garcia

Instigator. Chaser of shiny objects. Javascript relationship status: It's complicated.
Avatar of Ajo John

Ajo John https://github.com/ajomadlabs

I love Javascript. Great fan of Vuejs. Loves Open Source.
Avatar of Jake Varness

Jake Varness GitHub Page

I'm fascinated by all of the different practical applications that JavaScript has to offer. I've developed JavaScript professionally for many years, and have worked on single-page applications using Knockout.js/Durandal, as well as Node.js applications!
Avatar of Rahmeen Habib

Rahmeen Habib https://github.com/Rahmeen14

I write C++ at the university, have 10 week professional experience with Java in an intern project and am an RGSoC scholar for a JavaScript Project
Avatar of Marcos Brizeno

Marcos Brizeno https://github.com/MarcosX

I like to keep learning about languages, tools and anything that make developing software fun!
Avatar of Koen Wellens

Koen Wellens My blog where I review books.

I've been working with JavaScript for about 6 years now. I think I've come at a level where I can help others.
Fun. Challenging. Interesting

Community-sourced JavaScript exercises

These are a few of the 92 exercises on the JavaScript track. You can see all the exercises here.

Ocr Numbers
medium
control flow conditionals
control flow loops
equality
exception handling
integers
parsing
text formatting
Anagram
easy
filtering
strings
Collatz Conjecture
easy
algorithms
control flow conditionals
control flow loops
integers
mathematics
recursion
Minesweeper
medium
algorithms
arrays
games
Leap
easy
booleans
integers
logic
Perfect Numbers
easy
arrays
control flow conditionals
control flow loops
integers
mathematics
Passionate. Knowledgeable. Creative.

Meet the JavaScript Track maintainers

The JavaScript Maintainers are the brains behind the JavaScript Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Matt Morgan

Learn, build, teach, repeat!

Rubén Chavarría Here is where I blog

I'm a Web Developer with a passion for taking code that is hard to maintain and cleaning, refactoring, and bringing it back into a manageable state

Joel Wallis Jucá

Brazilian full-stack web developer. Mentor at Thinkful

Get started with the JavaScript track. As with everything on Exercism, it's 100% free!

Join the JavaScript Track