Want to learn and master JavaScript?

Join Exercism’s JavaScript Track for access to 149 exercises grouped into 33 JavaScript Concepts, with automatic analysis of your code and personal mentoring, all 100% free.

Explore concepts

About JavaScript

JavaScript is a programming language that allows web pages to be dynamic. It is an interpreted language, which means that it doesn't need to be compiled: instead the interpreter (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!

JavaScript is not only used in the browser. JavaScript runtimes, such as Node.js and Deno allow you to write, launch and serve requests on webservers. Other frameworks, such as Electron use JavaScript to write cross-platform applications for Windows, Linux and macOS. Mobile app development is also a possibility, utilising React Native, Ionic and various others, with Expo now allowing to target Android, iOS and the web, all at once.

ECMAScript is the standard that defines JavaScript.

"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 that brought many enhancements over ES5, including notably template strings, expressive arrow function syntax, and cleaner syntax for defining classes.

But because new syntax and features are coming to JavaScript each year, support for these changes is often incomplete in current browsers and the latest Node.js. This doesn't mean we can't use it. Tools such as Babel offer transpilation for most features, allowing us to write as if it's the future.

Note: This track supports the latest ECMAScript syntax via Babel and the @babel/preset-env plugin, and new experimental features are enabled with each update of that plugin, matching the release of the specifications. It automatically adapts to your local Node.js installation. This means you don't need to worry about what is and isn't supported.


There are a small number of browsers that do not include a JavaScript runtime, or that have disabled JavaScript execution by default.

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

149 coding exercises for JavaScript on Exercism. From Pizza Order to Sieve.


Get better at programming through fun, rewarding coding exercises that test your understanding of concepts with Exercism.

See all JavaScript exercises on Exercism

Key Features of JavaScript


JavaScript

Runs almost everywhere

Build web-pages, write backend, create database scripts, make mobile apps, design CLI-s, and more.

Use any programming style

Use prototype-based, object-oriented, functional, or declarative programming styles, and more.

No types required

Dynamically and weakly typed by default, gain typed confidence using Flow, JSDoc, or TypeScript.

Concurrency is safe

Async/await, dedicated workers, or state sync in shared workers. No deadlocks or race conditions.

Largest package registry

No need to reinvent the wheel. Build on top of > 1.3 million packages (April, 2020).

Designed by a committee

Frequent updates, following ECMAScript, a general purpose, cross platform, vendor-neutral standard.

A taste of the concepts you'll cover


See all the concepts for JavaScript

Get mentored the JavaScript way

Every language has its own way of doing things. JavaScript is no different. Our mentors will help you learn to think like a JavaScript developer and how to write idiomatic code in JavaScript. Once you've solved an exercise, submit it to our volunteer team, and they'll give you hints, ideas, and feedback on how to make it feel more like what you'd normally see in JavaScript - they'll help you discover the things you don't know that you don't know.

Learn more about mentoring

Community-sourced JavaScript exercises

The JavaScript track on Exercism has 33 concepts and 149 exercises to help you write better code. Discover new exercises as you progress and get engrossed in learning new concepts and improving the way you currently write.

See all JavaScript exercises
JavaScript

Get started with the JavaScript track

The best part, it’s 100% free for everyone.