typeof, истинные и ложные значения, == и ===
Безопасно используйте typeof, распознавайте истинные и ложные значения и правильно сравнивайте значения с помощью ===.
«typeof, истинные и ложные значения, == и ===» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 3 уроков всего.
Введение
Цель: Узнать, как typeof определяет типы, какие значения являются истинными или ложными и когда использовать === вместо ==.
- Основы typeof
- Истинные и ложные значения
- Строгое равенство

Обзор typeof
typeof удобен для быстрой проверки примитивов. Учтите устаревшую особенность: typeof null возвращает "object".
// typeof returns a string describing the type
console.log(typeof 42);
// "number"
console.log(typeof "hi");
// "string"
console.log(typeof true);
// "boolean"
console.log(typeof undefined);
// "undefined"
console.log(typeof 10n);
// "bigint"
console.log(typeof Symbol("x"));
// "symbol"
console.log(typeof null);
// "object" (historic quirk)

Истинные и ложные значения (понятие)
Ложные значения: 0, -0, 0n, "", false, null, undefined, NaN. Все остальные значения являются истинными (например, "0", "false", [], {}, function(){}).

Проверка истинности
Используйте Boolean(x) или if, чтобы увидеть, как значение ведёт себя в условиях.
// Use Boolean(x) or if (x) to test truthiness
console.log(Boolean("0"));
// true (non-empty string)
console.log(Boolean(""));
// false (empty string)
console.log(Boolean([]));
// true (arrays are objects)
console.log(Boolean(0));
// false
console.log(Boolean({}));
// true

Проблемы нестрогого равенства
== приводит типы, создавая запутанные совпадения. В большинстве программ избегайте этого оператора.
// == performs type coercion: can be surprising
console.log(0 == false);
// true
console.log("" == 0);
// true
console.log(null == undefined);
// true
console.log("5" == 5);
// true (string coerced to number)

Строгое равенство
Используйте === и !== для предсказуемых сравнений без приведения типов.
// === compares without coercion: safer and clearer
console.log(0 === false);
// false
console.log("" === 0);
// false
console.log("5" === 5);
// false
console.log(5 === 5);
// true

Проверка строгого равенства
Быстрая проверка: безопасное сравнение.

Повторение
Повторение: typeof определяет примитивы (помните об особенности null), Вы узнали распространённые ложные значения и увидели, почему === понятнее, чем ==.

Часто задаваемые вопросы
Урок «typeof, истинные и ложные значения, == и ===» бесплатный?
Да — полный текст урока «typeof, истинные и ложные значения, == и ===» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 3 уроков всего.
Чему я научусь в уроке «typeof, истинные и ложные значения, == и ===»?
Безопасно используйте typeof, распознавайте истинные и ложные значения и правильно сравнивайте значения с помощью ===. Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать JavaScript Academy?
Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.
Сколько времени занимает урок «typeof, истинные и ложные значения, == и ===»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке JavaScript Academy?
Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Примитивы и объекты, основные типы
- typeof, истинные и ложные значения, == и ===
- Приведение типов: безопасные способы избежать неожиданностей