Получить доступ

Типы, сравнение и копирование

Основа

Примитивы и объекты, приведение типов, == против ===, ссылки и копирование.

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

typeof null            // "object" — историческая ошибка
0.1 + 0.2 === 0.3      // false — плавающая точка
[] == false            // true — приведение типов
const a = { n: 1 }; const b = a; b.n = 2; a.n  // 2 — одна ссылка

Что важно знать

  • === сравнивает без приведения типов — использовать всегда; == — только осознанно (x == null ловит и null, и undefined).
  • Ложные значения: false, 0, -0, 0n, "", null, undefined, NaN. NaN !== NaN, проверка — Number.isNaN.
  • ?? срабатывает только на null/undefined, || — на любое ложное.
  • Копирование: {...obj} и [...arr] — поверхностные, structuredClone(obj) — глубокое.
  • Методы массивов: map, filter, reduce возвращают новый массив, sort, reverse, splice меняют исходный (есть неизменяющие toSorted, toReversed, toSpliced).

Вопросы с собеседований

Документация

← Вся карта «Frontend-разработчик»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем