ECMAScript is the standard that defines JavaScript, the language that allows web pages to be dynamic. It executes in modern web browsers, and can also be executed on servers where the NodeJS platform is installed. JavaScript/ECMAScript is an interpreted language, which means that it doesn't need to be compiled.

"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. ES2015 was a major update which brought many enhancements over ES5, including notably template strings, expressive arrow function syntax, and cleaner syntax for defining classes. Support in current browsers is incomplete, and often requires transpilation with a tool like Babel.

This track supports the latest ECMAScript syntax via Babel and the babel-preset-env plugin. New and 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.

Help us explain this better! File a GitHub issue at if you have suggestions, or submit a patch with improvements to the file.

Try It!

If you've downloaded the command-line client and have ECMAScript installed on your machine, then go ahead and fetch the first problem.

exercism fetch ecmascript

In order to be able to submit your solution, you'll need to configure the client with your Exercism API key.

exercism configure --key=YOUR_EXERCISM_KEY

When you've written a solution, submit it to the site. You'll have to configure the command-line client with your exercism API key before you can submit.

exercism submit PATH_TO_FILE