Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: primitive types, reference types, data types, typeof operator, type coercion

На какие группы делятся типы данных в JavaScript?

Вопрос проверяет понимание классификации типов данных в JavaScript, что необходимо для корректной работы с переменными и избегания ошибок типизации.

Короткий ответ

В JavaScript типы данных делятся на две основные группы: примитивные (primitive) и ссылочные (reference). Примитивные типы хранят значение напрямую, к ним относятся: string, number, boolean, undefined, null, symbol и bigint. Ссылочные типы (объекты, массивы, функции) хранят ссылку на значение в памяти. Ключевое различие в том, как они копируются и сравниваются: примитивы копируются по значению, а ссылочные типы — по ссылке.

Длинный ответ

В JavaScript все значения имеют определённый тип данных, и понимание их классификации критически важно для написания предсказуемого кода. Типы делятся на две фундаментальные группы: примитивные (primitive) и ссылочные (reference). Это разделение основано на способе хранения и передачи данных в памяти.

Примитивные типы (Primitive Types)

Примитивные типы являются неделимыми, неизменяемыми (immutable) значениями, которые хранятся непосредственно в переменной. При копировании переменной с примитивным значением создаётся независимая копия этого значения. К примитивам относятся:

  • String: текст, например 'Hello'.
  • Number: целые и дробные числа, включая Infinity и NaN.
  • Boolean: логические значения true и false.
  • Undefined: значение неопределённой переменной.
  • Null: специальное значение «ничего» или «пусто».
  • Symbol (ES6): уникальные идентификаторы.
  • BigInt (ES2020): целые числа произвольной длины.

Ссылочные типы (Reference Types)

Ссылочные типы — это объекты (в широком смысле). Переменная, содержащая объект, массив или функцию, хранит не само значение, а ссылку (адрес в памяти) на него. При копировании такой переменной копируется только ссылка, а не сам объект, поэтому обе переменные начинают указывать на одни и те же данные в памяти.

// Пример с примитивом (копирование значения)
let a = 5;
let b = a; // b получает копию значения 5
b = 10;
console.log(a); // 5, a не изменилось

// Пример со ссылочным типом (копирование ссылки)
let obj1 = { name: 'John' };
let obj2 = obj1; // obj2 получает ссылку на тот же объект
obj2.name = 'Jane';
console.log(obj1.name); // 'Jane', объект изменён через обе ссылки

Практическое применение и проверка

Оператор typeof помогает определить тип, но для null он возвращает 'object' (историческая особенность), а для массивов и null нужны дополнительные проверки. Понимание разницы между группами предотвращает ошибки при сравнении (используйте строгое равенство ===) и мутациях объектов.

Вывод: Знание разделения на примитивы и ссылочные типы необходимо для корректного управления данными, особенно при работе с функциями, изменением состояния и сравнением значений в JavaScript.

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#primitive types

#reference types

#data types

#typeof operator

#type coercion

Подпишись на React Developer в телеграм