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.
Join the JavaScript Track
Track mentors

110 Mentors

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

45,235 Students

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

99 Exercises

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

About JavaScript

export function hello() {
  return 'Hello, World!';
};

ECMAScript is the standard that defines JavaScript, the language that allows web pages to be dynamic. It is an interpreted language, which means that it doesn't need to be compiled by the programmer: instead the client (such as a web browser) will parse the code and turn it into code that their machine can run - suitable for creating dynamic websites that can run on any browser on any computer!

In addition to use in web pages with modern web browsers, and it can also be executed on servers where the NodeJS platform is installed where it can be used for creating a web server too.

"ECMAScript has grown to be one of the world’s most widely used general purpose programming languages. It is best known as the language embedded in web browsers but has also been widely adopted for server and embedded applications." — ECMA International Language Specification

Starting with the 6th edition (commonly known as ES2015 or ES6) in 2015, a new edition of the standard will be released each year. The 6th edition was a major update which brought many enhancements over ES5, including notably template strings, expressive arrow function syntax, and cleaner syntax for defining classes.

However, support for the newest syntax is incomplete in current browsers and the latest node, and often requires transpilation with a tool like Babel.

Note: This track supports the latest ECMAScript syntax via Babel and the @babel/preset-env plugin, and new experimental features will be enabled with each release of the specification. Here, you will find code that not all runtimes are able to run.

Join the JavaScript track

Exercism is a great website

The reviews are incredibly helpful because they help me see things that I missed, learn about new ways and sometimes interesting discussions that can add a fun twist to maybe a simple problem.

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 André König

André König https://github.com/akoenig

I'm a sofware architect & engineer and I love to share knowledge, because I think that everybody should be able to learn how to develop software.
Avatar of Fredrik Rubensson

Fredrik Rubensson https://github.com/froderik

So I am not that great at Javascript but I have touched it a lot over the years. I imagine myself helping out a bit with the easier exercises.
Avatar of Naresh Thakur

Naresh Thakur https://github.com/thakurinbox

I work as a senior full stack engineer. Mostly I worked with JavaScript in my career. I usually work on Node, React/Redux. And I can work on any JavScript library or framework. I love so solve logical problems. I am here to help to get familiar with data structures and algorithms
Avatar of Archana Sriram

Archana Sriram https://github.com/archanid

JavaScript and Node.js are my top programming languages. I'm a professional software engineer with over two decades of work experience. I love to teach and mentor.
Avatar of James Hutcheon

James Hutcheon GitHub

I'm a primarily back-end developer who uses JavaScript as a day to day language. I'm also learning Java myself (for a project at work) and am starting to use TypeScript on the side.
Avatar of David Jones

David Jones Website

Software engineer and a fan of many programming languages
Fun. Challenging. Interesting

Community-sourced JavaScript exercises

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

Diffie Hellman
easy
algorithms
arrays
exception handling
math
conditionals
loops
Series
easy
exception handling
strings
text formatting
loops
Alphametics
medium
algorithms
games
Bob
medium
pattern recognition
regular expressions
strings
conditionals
polymorphism
Leap
easy
booleans
integers
logic
Accumulate
medium
algorithms
callbacks
lists
loops
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.

Avatar of Derk-Jan Karrenbeld

Derk-Jan Karrenbeld My website

All-round programmer, manager and owner of a Dutch software agency specializing in bespoke and tailored code.
Avatar of Tejas Bubane

Tejas Bubane My blog

Primarily a Ruby & Javascript coder, getting better at functional programming, emacs lover.

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

Join the JavaScript Track