# ЖабаСкрипт. Конспект 5 **Published by:** [Nemo](https://paragraph.com/@nemo-3/) **Published on:** 2022-07-20 **URL:** https://paragraph.com/@nemo-3/5 ## Content Условная конструкцияОператор ifИнструкция if(...) вычисляет условие в скобках и, если результат true, то выполняет блок кода в фигурных скобках {…}.if (10 > 1) { alert('Правда'); } if (10 < 1) { alert('Ложь'); } if (10 == 10) { alert('Правда'); } Блок elseИнструкция if может содержать необязательный блок «else» («иначе»). Он выполняется, когда условие ложно.if (10 > 1) { alert('Правда'); } else { alert('Ложь'); } Несколько условий: «else if»Если нужно проверить несколько вариантов условия, то для этого используется блок else if.if (10 > 1) { alert('10 > 1'); } else if (10 < 1) { alert('10 < 1'); } else if (10 == 1) { alert('10 == 1'); } // Выведет 10 > 1 Тернарный операторТернарный оператор имеет следующий синтаксисlet result = условие ? значение1 : значение2; Сначала вычисляется условие: если оно истинно, тогда возвращается значение1, в противном случае – значение2.let accessAllowed = (age > 18) ? true : false; Логические операторыВ JavaScript есть четыре логических оператора: || (ИЛИ), && (И) и ! (НЕ), ?? (Оператор нулевого слияния).|| (ИЛИ)alert( true || true ); // true alert( false || true ); // true alert( true || false ); // true alert( false || false ); // false Использование || **1. Получение первого истинного значения из списка переменных или выражений. **Цепочка ИЛИ || возвращает первое истинное значение или последнее, если такое значение не найдено.let currentUser = null; let defaultUser = "John"; let name = currentUser || defaultUser || "unnamed"; alert( name ); // выбирается "John" – первое истинное значение 2. Сокращённое вычисление. ИЛИ || вычисляет их слева направо. Вычисление останавливается при достижении первого истинного значения. Этот процесс называется «сокращённым вычислением», поскольку второй операнд вычисляется только в том случае, если первого недостаточно для вычисления всего выражения.let x; true || (x = 1); alert(x); // undefined, потому что (x = 1) не вычисляется false || (x = 1); alert(x); // 1 && (И)alert( true && true ); // true alert( false && true ); // false alert( true && false ); // false alert( false && false ); // false И «&&» находит первое ложное значение! (НЕ)alert( !true ); // false alert( !0 ); // true Двойное НЕ !! используют для преобразования значений к логическому типу. Равносильно функции Boolean(value):alert( !!"non-empty string" ); // true alert( !!null ); // false alert( Boolean("non-empty string") ); // true alert( Boolean(null) ); // false ?? (Оператор нулевого слияния)Будем считать, что выражение определено, если оно не равно null или undefined. Результат выражения a ?? b будет следующим:если a определено, то a,если a не определено, то b.Оператор ?? может быть записано следующим образом:result = (a !== null && a !== undefined) ? a : b; Как правило, оператор ?? нужен для того, чтобы задать значение по умолчанию для потенциально неопределённой переменной.Ссылки:https://learn.javascript.ru/ifelse https://learn.javascript.ru/logical-operators https://learn.javascript.ru/nullish-coalescing-operator ## Publication Information - [Nemo](https://paragraph.com/@nemo-3/): Publication homepage - [All Posts](https://paragraph.com/@nemo-3/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@nemo-3): Subscribe to updates