jskatas.org Continuously Learn JavaScript. Your Way.

JavaScript - Learn with Katas

Learn and re-learn (all of) JavaScript, at your level and at your speed.

No matter if you are beginner or an expert, a slow or fast learner. The site jskatas aims to allow anyone to discover and learn unknown or new parts of JavaScript. You can also consolidate your JavaScript knowledge or extend your skills and sharpen them.

Learning with jskatas requires you to actively work with and on the language. There is no lean-back content to "just consume" and hope to have acquired knowledge, this is NOT what jskatas offers, and also does not want to offer.

Donate to NGO Julenka. Support Ukranians in need. Julenka is an NGO which my brother founded in 2011 to support Ukranian families and kids in need.

ECMAScript 6 / ES2015 81 katas


array #easy
string #easy
object #easy
defaults #easy

Object literal

getter #easy
setter #easy

Spread operator

Block scope

Arrow functions

basics #easy


Default parameters

Basics #easy

Object API


ECMAScript 10 / ES2019 12 katas

Array API

`array.flat()` #planned

String API

`string.trimEnd()` #easy #planned


unbinded `catch` #easy #planned

Symbol API

JSON superset


Function API

`function.toString()` #easy #planned

ECMAScript 1 9 katas

Type conversion

to boolean #planned
to number #planned

Global Object API

`parseInt()` #easy
`parseInt()` in depth #easy #planned

ECMAScript 8 / ES2017 3 katas

Object API

`Object.entries()` #easy #planned
`Object.values()` #easy #planned

Async Function

ECMAScript 11 / ES2020 2 katas


Basics #easy

String API

ECMAScript 7 / ES2016 1 katas

Array API