ECMAScript

Join the ECMAScript Track
ECMAScript is the standard that defines JavaScript, a language widely used in web development. It is updated regularly, requiring transpilation for code to be compatible with most browsers.
Track mentors

11 Mentors

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

2,144 Students

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

94 Exercises

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

About ECMAScript

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. For widely supported JavaScript based on the ES5 standard, you may be interested in the JavaScript track.

Join the ECMAScript track
class HelloWorld {
  hello() {
    return 'Hello, World!';
  }
}

export default HelloWorld;

Exercism is a great website

Exercism is a great website where I was able to have some very interesting challenges.

Relaxed. Encouraging. Supportive.

Meet the ECMAScript Track mentors

Once you join the ECMAScript 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 Michael Anderson

Michael Anderson https://github.com/usufruct

ECMAScript is the hobo of the internet. It is also the train I took into the world of software years ago.
Avatar of Frederic Charette

Frederic Charette https://github.com/fed135

Writing Javascript for Backend applications and open-source development are my passions. I’ve been coding for about 16 years now, and I feel that we’re probably living in one of the best possible times for Javascript software development.
Avatar of Chris Strolia-Davis

Chris Strolia-Davis https://github.com/cstroliadavis

I've been developing with JavaScript/EcmaScript for about 2 decades. I've been helped by many and I'm happy to help others.
Avatar of Leonardo Cardoso

Leonardo Cardoso https://github.com/Leocardoso94

undefined is not a function
Avatar of Steven Atkinson

Steven Atkinson https://github.com/mrstebo

I've been working on projects using ECMAScript for almost 5 years now as a full stack developer, and really like the added features. ECMAScript is a superb language to have under your belt.
Avatar of Ryan Boris

Ryan Boris GitHub

I use ECMAScript in my personal, open-source contributions and professional work as well. I have also taught webinars on ECMAScript topics and project walkthroughs that used it. I also do a weekly webinar series and ECMAScript is a recurring theme. Please feel free to ask any questions!
Fun. Challenging. Interesting

Community-sourced ECMAScript exercises

These are a few of the 94 exercises on the ECMAScript track. You can see all the exercises here.

Armstrong Numbers
easy
algorithms
math
Circular Buffer
hard
arrays
control flow conditionals
control flow loops
data structures
exception handling
lists
Space Age
easy
classes
floating point numbers
Diffie Hellman
easy
algorithms
arrays
control flow conditionals
control flow loops
exception handling
math
Complex Numbers
medium
math
Kindergarten Garden
medium
arrays
control flow conditionals
control flow loops
strings
text formatting
Passionate. Knowledgeable. Creative.

Meet the ECMAScript Track maintainers

The ECMAScript Maintainers are the brains behind the ECMAScript 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, teach, build, 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

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

Join the ECMAScript Track