Загрузка...

Сравнение

Присваивание наполнило именованную коробку. Теперь спрашиваете, что внутри: то же самое? больше? уже достаточно? Ответ всегда да или нет — true или false. Эти вопросы — операторы сравнения. Позже они войдут в условия; здесь вы учитесь читать знаки и доверять boolean, который они возвращают.

Что такое сравнение?

Сравнение берёт два операнда и возвращает boolean. Оно не кладёт новое число в имя слева (это было =). После 5 === 5 результат true. После 5 === "5" — false, потому что типы разные. Этот boolean можно вывести в консоль, сохранить в переменной или написать на странице.

Операторы с одного взгляда

📊 Повседневные операторы сравнения

Оператор Спрашивает Типичный результат
=== то же значение и тип? 5 === 5 → true
!== другое значение или тип? 5 !== "5" → true
< строго меньше? 3 < 10 → true
> строго больше? 3 > 10 → false
<= меньше или равно? 10 <= 10 → true
>= больше или равно? 9 >= 10 → false

Держите лист под рукой. == и != тоже есть, но в этом курсе это ловушка новичка — они могут привести типы перед сравнением. Держитесь === / !==, пока отдельный урок не разберёт принуждение типов.

Строгое равенство и неравенство

javascript
console.log(7 === 7);
console.log(7 === "7");
console.log(7 !== 7);
console.log(7 !== "7");
let n = 7;
console.log(n === 7);

=== проверяет и значение, и тип

Три знака равенства — значение по умолчанию для новичка. Обе стороны должны совпасть по значению и типу. Число 7 — это не текст "7".

Консоль печатает true, false, false, true, true. Последняя строка показывает: сохранённое число по-прежнему строго сравнивается с литералом 7. !== — обратный вопрос: «они не одинаковы?» — здесь 7 !== "7" даёт true, потому что типы разные.

Почему новичку лучше обойти ==

Два знака равенства могут превратить строку в число (или наоборот) и только потом решить. Удобно выглядит, пока не спрячет ошибку.

Нестрогое равенство против строгого

javascript
console.log(7 == "7");
console.log(7 === "7");
console.log(0 == false);
console.log(0 === false);
console.log("" == 0);
console.log("" === 0);

7 == "7" становится true, хотя одна сторона — текст. 7 === "7" остаётся false. Ещё 0 == false и "" == 0 дают true — шумные сюрпризы. Строгая проверка честна: число, boolean и пустая строка — разное. В этом курсе предпочитайте ===.

Ранжирование чисел

< > <= >= ставят числа по порядку. Равенство считается да для <= и >=.

Ранжирование чисел

javascript
console.log(3 < 10);
console.log(3 > 10);
console.log(10 <= 10);
console.log(9 >= 10);
let score = 80;
console.log(score >= 60);

Получаете true, false, true, false, true. Последняя строка — повседневный вопрос: «очков хватает?» Если нужно имя для ответа, сохраните boolean.

Сохранить boolean-флаг

javascript
let score = 80;
let pass = score >= 60;
console.log(pass);
let age = 17;
let adult = age >= 18;
console.log(adult);

pass равен true (80 проходит 60). adult равен false (17 не дотягивает до 18). Сравнение уже дало boolean — вы только дали ему имя.

Порядок строк

javascript
console.log("A" < "B");
console.log("B" < "A");
console.log("apple" === "apple");
console.log("Apple" === "apple");
console.log("10" < "9");

У текста словарный порядок

Строки сравниваются посимвольно, как словарь — не как человеческий «размер». "A" < "B" это true. Заглавная не равна строчной ("Apple" === "apple" — false). Цифры в кавычках тоже живут по правилам текста: "10" < "9" может быть true, потому что "1" идёт раньше "9". Преобразуйте через Number(), если имели в виду числовой ранг.

Показать проверку на странице

Посчитайте boolean и напишите короткую метку на странице.

Проверка страницы сравнением

html
<!DOCTYPE html>
<html>
<head>
<title>Comparison — page check</title>
</head>
<body>
<p id="out">…</p>
<script>
let age = 18;
let adult = age >= 18;
let box = document.getElementById("out");
box.textContent = "adult=" + adult;
</script>
</body>
</html>

age равен 18, поэтому adult — true, и страница показывает adult=true. Поставьте age в 17, обновите — должно быть adult=false. Дальше ветвление с if; это демо только печатает да/нет.

Попробуйте сами

  1. Выведите 8 === 8 и 8 === "8".
  2. Выведите 8 !== "8" и 8 !== 8.
  3. Положите 4 == "4" рядом с 4 === "4" и заметьте разницу.
  4. Сохраните let pts = 50 и выведите pts >= 60.
  5. Выведите "cat" === "cat" и "Cat" === "cat".
  6. В HTML-демо смените только age, обновите, прочитайте новый текст adult=.

Частые ошибки

  • Писать =, когда имелось в виду === (это сохраняет, не спрашивает)
  • Брать ==, потому что «иногда работает» — оно ещё и приводит типы
  • Ранжировать строки из цифр как числа ("10" < "9")
  • Забывать, что сравнение уже возвращает boolean — не оборачивайте вручную в true/false
  • Смешивать это семейство с логическими операторами (&& ||) — те объединяют да/нет; следующий урок

Кратко

  • Сравнение задаёт вопрос и возвращает true или false
  • Предпочитайте === и !== (значение и тип)
  • Ранжируйте < > <= >=; равенство входит в <= и >=
  • Строки идут в словарном порядке, включая странные результаты с цифрами-текстом
  • Не берите == / != как значение по умолчанию для новичка
  • Дальше: логические операторы — сочетать несколько да/нет через &&, || и !

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
8
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху