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

72 Mentors

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

24,095 Students

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

96 Exercises

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

About JavaScript

class HelloWorld {
  hello() {
    return 'Hello, World!';
  }
}

export default HelloWorld;

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 in current browsers is incomplete, 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 browsers 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 Shankar Shastri

Shankar Shastri GitHub Profile

Lover Of Pure Functional Programming.
Avatar of Byron Anderson

Byron Anderson Byron's Programming Blog

Javascript is the language I get to use without asking, so I get to pick and choose to just use 'The Good Parts'!
Avatar of Nadeem Shabir

Nadeem Shabir https://github.com/kiyanwang

Polyglot developer, loves programming, constantly learning!
Avatar of Brenton Alker

Brenton Alker github.com/tekerson

JavaScript is a gateway into software development for so many. I've been developing for the web in various forms for about 15 years and I hope to share some of my experience to help other navigate this learning journey.
Avatar of Colton Ehrman

Colton Ehrman Personal Website

I love to keep things simple, and slowly work on new projects little by little. It makes the most complex problems not so complex after all.
Avatar of Volkan Erdogan

Volkan Erdogan https://github.com/volcain-io

I'm self-employed and doing web & mobile apps (ECMAScript/JavaScript) & I'm in love with all the possibilities you get with that language.
Fun. Challenging. Interesting

Community-sourced JavaScript exercises

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

Meetup
medium
control flow conditionals
control flow loops
dates
equality
exception handling
time
Variable Length Quantity
medium
bitwise operations
transforming
Rational Numbers
medium
algorithms
floating point numbers
math
Crypto Square
hard
algorithms
arrays
control flow conditionals
control flow loops
regular expressions
sorting
text formatting
transforming
Triangle
easy
control flow conditionals
control flow loops
exception handling
integers
Matrix
medium
arrays
control flow conditionals
control flow loops
data structures
matrices
text formatting
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 Rubén Chavarría

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
Avatar of Tejas Bubane

Tejas Bubane My blog

Primarily a Ruby & Javascript coder, getting better at functional programming, emacs lover.
Avatar of Matt Morgan

Matt Morgan

Learn, teach, build, repeat!

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

Join the JavaScript Track