🎉 Exercism Research is now launched. Help Exercism, help science and have some fun at research.exercism.io 🎉

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

152 Mentors

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

107,238 Students

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

107 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, 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 for use in the browser. JavaScript runtimes, such as NodeJS 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 Mac OS. 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 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.

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. 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 installation. This means you don't need to worry about what is and isn't supported.


* There is a small number of browsers that doesn't ship with a JavaScript runtime, or that has disabled JavaScript execution by default.

Join the JavaScript track

A tremendous learning opportunity to explore the depth of your own knowledge

Exercism is fantastic in learning new languages but that is not the extent of it. If you are a "more experienced" programmer you may have encountered impostor syndrome: the idea you don't really know what you think you know. Exercism lets you solve problems and put them in the space of open feedback which is a tremendous learning opportunity to explore the depth of your own knowledge. Even if you have been programming in a language for awhile it is worth checking into Exercism to see where you stand with current implementation practices.

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 Rin Raeuber

Rin Raeuber https://github.com/rin

My grandma taught me BASIC, but I never learnt to whistle. – Originally a Ruby coder, I only recently learnt the ins and outs and this’ and thats of Javascript myself. Lost and overwhelmed? Been there and happy to help.
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 Phil Salant

Phil Salant https://github.com/PSalant726

I'm a full-time software engineer based in NYC. I have experience using JavaScript, React, Ruby/Rails, and Go.
Avatar of Chris Seckler

Chris Seckler https://github.com/zeckdude

I live, breathe, and dream JavaScript. I could be dreaming right now.
Avatar of David Fimbres

David Fimbres https://github.com/dfimbres

I think Javascript still has a lot of growing to do and as one of the most widely used languages I want to be able to help others as they grow as well.
Avatar of Dagmar Timmreck

Dagmar Timmreck https://github.com/DagmarTimmreck

JS - or better ES6 - is my main language at work. I am a mathematician by training, sing in a semi-professional choir and am a mother of three.
Fun. Challenging. Interesting

Community-sourced JavaScript exercises

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

Simple Cipher
medium
algorithms
randomness
strings
text formatting
transforming
conditionals
loops
Grep
medium
files
searching
text formatting
Armstrong Numbers
easy
algorithms
math
Scale Generator
easy
loops
pattern recognition
strings
arrays
Sublist
medium
arrays
lists
React
hard
algorithms
events
reactive programming
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 Evelyn Stender

Evelyn Stender Website

Full-stack developer passionate about Javascript. Studying Go on my free time.
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.
Avatar of Kristina Born

Kristina Born

Full-stack developer and lover of all things linguistic. Teaching is the best way to learn.
Avatar of Josh Goebel

Josh Goebel Blog: Running Blind

I mostly write Ruby & JavaScript (for fun and profit) but I dabble with TypeScript, Elixir, Nim, Arduino, and such.

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

Join the JavaScript Track