Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Оператор !». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Оператор `!`** - це **логічне заперечення (NOT)**, яке **інвертує** (перевертає) логічне значення виразу. **Ключове:** Подвійне заперечення `!!value` - це короткий спосіб явно привести будь-яке значення до типу `boolean`.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняОператор `!` називається **логічним запереченням (NOT)**. Він **інвертує** (перевертає) логічне значення виразу. --- ### Правило: ```javascript !true → false !false → true ``` > Якщо значення **істинне (truthy)** - воно стане `false`. > Якщо **хибне (falsy)** - воно стане `true`. --- ## Приклади використання `!` ```javascript !true // false !false // true !0 // true (0 - хибне значення) !1 // false (1 - істинне) !"" // true (порожній рядок - хибне значення) !"hello" // false (непорожній рядок - істинне значення) !undefined // true !null // true !NaN // true ![] // false (масив - truthy) !{} // false (об'єкт - truthy) ``` --- ## Подвійне заперечення `!!` Дуже часто в JavaScript зустрічається подвійний оператор: ```javascript !!value ``` Він використовується для **приведення будь-якого значення до типу** `boolean`. ### Приклад: ```javascript !!'hello' // true !!'' // false !!0 // false !!123 // true !!null // false !!{} // true !![] // true ``` > `!!` - це короткий і зрозумілий спосіб явно сказати: > «Перетвори значення на булеве». --- ## У логічних виразах `!` часто використовується для перевірки умов: ```javascript const isLoggedIn = false; if (!isLoggedIn) { console.log('Користувач не авторизований'); } ``` > Тут `!isLoggedIn` → `!false` → `true`, > тобто блок `if` виконається. --- ## Як це працює всередині 1. JS **спочатку приводить значення до логічного типу** (`true` / `false`); 2. потім **інвертує** його. Приклад: ```javascript !'text' // крок 1: 'text' → true; крок 2: !true → false ``` --- ## Порівняння з іншими логічними операторами | Оператор | Назва | Приклад | Результат | |---|---|---|---| | `!` | Логічне **НЕ** | `!true` | `false` | | `&&` | Логічне **І** | `true && false` | `false` | | `\|\|` | `Логічне АБО` | `true \|\| false` | `true` | --- ## Підсумок | Ситуація | Що робить `!` | Приклад | |---|---|---| | Заперечує логічне значення | `!true → false` | | | Приводить значення до `boolean` | `!!'js' → true` | | | Використовується в умовах | `if (!user)` → «якщо user не задано» | |Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.