मुख्य कंटेंट तक स्किप करें

Истина или ложь?

@serverSerrverlesskiy

В этой главе будет много нового, но уж очень сложно быть не должно: ведь, в общем-то, всё вертится вокруг простой идеи — истина или ложь?

До сих пор мы всегда имели дело лишь с примитивными типами данных — с числами и строками. Быть может, вам уже встречался термин "примитивный" применительно к программированию? Если нет, я поясню: "примитивный" (ещё говорят "простой") означает, что этот тип данных не является объектом (к этому моменту мы ещё вернёмся) и не имеет встроенных методов работы (то есть функций⚙️).

True

Тип данных, который вам обязательно понадобятся, называется булевым boolean, или логическим. Булевый тип всегда имеет значение либо true ✅ - истина, либо false ❎ - ложь. И только так, и никак иначе! Он либо врёт, либо говорит правду — пан или пропал, свет включен или выключен, либо есть, либо нет. Вы либо сделали домашнее задание, либо нет. Только два 2️⃣ значения true ✅ или false.

Операторы равенства#

Operator

Булевы значения приходятся как нельзя кстати, когда нам необходимо что-то сравнить в JavaScript. Когда такая необходимость появляется, мы сразу же вызываем операторы сравнения. Сейчас мы последовательно изучим все восемь операторов сравнения, но штука в том, что в результате работы каждого из них мы всё равно всегда останемся с булевым значением — либо true ✅ , либо false ❎ .

Равно ==#

Justice

Оператор равно сначала приводит операнды к одному типу, и затем применяет строгое сравнение. Если оба операнда являются объектами, то JavaScript сравнивает внутренние ссылки, которые равны в том случае, если они ссылаются на один и тот же объект в памяти.

Синтаксис📖:

x == y

Примеры:

1 == 1 // истина'1' == 1 // истина1 == '1' // истина3 == 5 // ложь0 == false // истина'foo' == 'bar' // ложь

Введите по очереди примеры в переменную 🔔 bool нашего LIVE EDITOR

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Не равно !=#

Equals

Оператор не равно возвращает🔄 true ✅ в том случае, если операнды не равны. Он аналогичен оператору равенства, перед сравнением приводит операнды к одному типу. В случае если оба операнда являются объектами, JavaScript сравнивает внутренние ссылки, которые не равны в том случае, если относятся к разным объектам в памяти.

Синтаксис📖:

x != y

Примеры:

1 != 2 // истина1 != '1' // ложь1 != '1' // ложь1 != true // ложь0 != false // ложь'foo' != 'bar' // истина

Введите по очереди примеры в переменную 🔔 bool нашего LIVE EDITOR

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Строго равно ===#

equality

Оператор возвращает🔄 истину в том случае, если операнды строго равны. В отличие от оператора равно, данный оператор не приводит операнды к одному типу.

Синтаксис📖:

x === y

Примеры:

3 === 3 // истина3 === '3' // ложь'foo' === 'foo' // истина

Оператор чётко следит за тем, чтобы и значение, и тип были строго идентичными. В случае с 3 === '3' значение, конечно, идентично, однако тип — нет: ведь первое число, а второе строка.

Введите по очереди примеры в переменную 🔔 bool нашего LIVE EDITOR

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Строго не равно !==#

ruler

Оператор строго не равно возвращает🔄 истину в том случае, если операнды не равны, или их типы отличаются друг от друга.

Синтаксис📖:

x !== y

Примеры:

3 !== '3' // истина4 !== 3 // истина

Введите по очереди примеры в переменную 🔔 bool нашего LIVE EDITOR

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Почему не надо использовать == и !=? А потому, что такой необходимости, в общем-то, никогда и нет. В любом возможном случае, когда вы можете их использовать, всегда можно использовать и строгие === и !==. Если же вы желаете большей гибкости в ответе (скажем, чтобы с одинаковым успехом принималось как 1, так и '1' или true ✅ ), то можно просто включить нужные варианты ответа в сам код📟 (не меняя при этом ===).

Просто уясните правило

Никогда не используйте == или !=

Операторы сравнения#

Больше >#

not equal

Оператор больше возвращает🔄 истину в том случае, если значение левого операнда больше, чем правого.

Синтаксис📖:

x > y

Примеры:

4 > 3 // истина1 > 5 // ложь

Введите по очереди примеры в переменную 🔔 bool в LIVE EDITOR

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Меньше <#

small

Оператор меньше, возвращает🔄 истину в том случае, если значение операнда слева меньше, чем значение операнда справа.

Синтаксис📖:

x < y

Примеры:

3 < 4 // истина5 < 2 // ложь

Введите по очереди примеры в переменную 🔔 bool нашего LIVE EDITOR

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Больше или равно >=#

comparison operator

Оператор больше или равно, возвращает🔄 истину в том случае, если значение операнда слева больше или равно значению операнда справа.

Синтаксис📖:

x >= y

Примеры:

4 >= 3 // истина3 >= 3 // истина

Введите по очереди примеры в переменную 🔔 bool 👇 :

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Меньше или равно <=#

less

Оператор меньше или равно, возвращает🔄 истину в том случае, если значение операнда слева меньше, или равно значению операнда справа.

Синтаксис📖:

x <= y

Примеры:

3 <= 4 // истина3 <= 3 // истина

Введите по очереди примеры в переменную 🔔 bool 👇 :

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Условные конструкции#

boolean

Вы, должно быть, думаете: "Ну, все эти булевы-логические штуки — это было очень просто... Наверное, они довольно бесполезны, и используют их нечасто". Как бы не так! Логические значения используются в программировании более чем постоянно и всего чаще — в форме условных конструкций (или выражений).

А что такое "условная конструкция"?#

thoughtful

Хороший вопрос! Условная конструкция — это такое предложение, которое используется для запуска определённых блоков кода📟 согласно заданному условию. Условие (например, при сравнении x === y) всегда возвращает🔄 логическое значение — либо true ✅ , либо false ❎ . Соответственно, если значение true ✅ , то код следует запустить, в противном же случае блок кода📟 следует пропустить. Рассмотрим несколько примеров.

Условные выражения с if#

Instruction manual

Конструкция if выполняет инструкцию1, если условие true ✅, если условие false ❎, то выполняется инструкция2.

Синтаксис📖:

if (условие) {  инструкции1} else {  инструкции2}

условие - Выражение, которое является либо истинным, либо ложным.

инструкция1 - Инструкция, выполняемая в случае, если значение условиe истинно true ✅ . Может быть любой инструкцией в том числе и вложенным if. Когда никакого действия не требуется, может использоваться пустая инструкция.

инструкция2 - Инструкция, выполняемая в случае, если значение условиe ложно false❎ . Может быть любой инструкцией, в том числе и вложенным if. Инструкции тоже можно группировать в блок. Измените год в переменной 🔔 whatIsTheYearNow и обратите внимание на вывод.

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

if не только с булевыми значениями#

No

Условные выражения могут работать не только с булевыми значениями, то есть с такими, которые не точно true ✅ или false ❎ Так что мы, в общем-то, спокойно можем использовать их в скобках, как и булевы значения.

  • Все целые числа, кроме нуля — true
  • Cтрока с хотя бы одним символом true
  • Пустая строка - это false

Давайте попробуем, введите значения в переменную 🔔 bool 👇 :

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Операторы сравнения в выражениях с if#

made for each other

До сих пор мы с вами имели дело со сравнениями или с условными выражениями с if, но пока мы не использовали их вместе, а ведь они просто созданы🏗️ друг для друга!

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Несколько условий else if#

Иногда, нужно проверить несколько вариантов условия. Для этого используется блок else if. Измените год и смотрите вывод.

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Условный (тернарный) оператор ?#

question mark

Единственный оператор в JavaScript, принимающий три операнда: условие, за которым следует знак вопроса ?, затем выражение, которое выполняется, если условие истинно, сопровождается двоеточием :, и, наконец, выражение, которое выполняется, если условие ложно. Он часто используется в качестве укороченного варианта условного оператора if.

Синтаксис📖:

условие ? выражение1 : выражение2

Параметры:

условие - Выражение, принимающее значение true ✅ или false ❎ .

выражение1, выражение2 - Выражения, значения которых могут принадлежать любому типу.

Пример 👇 :

लाइव एडिटर
परिणाम
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Проблемы?#

Problem

Пишите в Discord или телеграмм чат, а также подписывайтесь на наши новости

Вопросы:#

Question

Какой синтаксис используется в операторе равно?

  1. x == y
  2. x = y
  3. x -- y

В каком случае оператор не равно возвращает true?

  1. Если операнды не равны
  2. Если операнды равны
  3. Если оба операнда являются объектами

Чем оператор равно отличается от строго равно?

  1. Строго равно не приводит операнды к одному типу
  2. Строго равно приводит операнды к одному типу
  3. Строго равно следит за тем, чтобы значение было идентичным, а тип нет

Какой синтаксис у оператора строго не равно?

  1. !=
  2. !==
  3. ==!

В каком случае оператор больше возвращает ложь?

  1. Если значение левого операнда больше, чем правого
  2. Если значение правого операнда больше, чем левого
  3. Если значения операнд одинаковые

Какой синтаксис у оператора больше или равно?

  1. >=
  2. > =>
  3. > <=

В каком примере оператор меньше или равно вернёт истину?

  1. 4 <= 5
  2. 5 <= 4
  3. 3 <= 2

Что такое условие?

  1. Инструкция
  2. Выражение
  3. Значение

Какой блок используется, чтобы проверить несколько вариантов условия?

  1. else if
  2. if
  3. for

Какой оператор принимает 3 операнда?

  1. Условный (тернарный) оператор
  2. Больше или равно
  3. Меньше или равно

Для того чтобы понять, на сколько вы усвоили этот урок, пройдите тест в мобильном приложении нашей школы по этой теме.

Sumerian school

Ссылки:#

  1. MDN web docs - Операторы сравнения
  2. Код для подростков: прекрасное руководство по программированию для начинающих, том 1: Javascript - Jeremy Moritz

Contributors ✨#

Thanks goes to these wonderful people (emoji key):


Dmitriy Vasilev

📖💵

Resoner2005

🐛 🎨 🖋

Become a Patron!