Дві основні групи: примітиви та об'єкти.
Примітиви (7):
- string -- текстові дані
- number -- цифрове значення у будь-які системі зчислення, у тому числі NaN, infinity, -0 тощо
- bigint -- спеціальний числовий тип для дуже великих числе (в кінці мають літеру n)
- boolean -- логічний або/або
- null -- тип для позначення відсутності значення
- undefined -- динамічна відсутність значення
- symbol -- маркер, унікальний ідентифікатор
Об'єкти (1 + підвиди):
- object -- асоціативний масив з методами
- function -- асоціативний масив з методами. Різниця між object і function у тому, що function можна виконати (запустити) і function може бути функцією-конструктором.
- class -- не є окремим типом даних, це функція-конструктор. "Синтаксичний цукор".
- array -- масив
- set -- колекція унікальних значень
- map -- колекція ключ-значення
- weakset -- тимчасова (слабка) колекція унікальних значень
- weakmap -- тимчасова (слабка) колекція ключ-значення
Баги та фічі:
оператор typeof визначає примітив null як object, a об'єкт function як function