Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Выражения и операторы
  5. Логическое НЕ (!)

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Логическое НЕ (!)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

Логический оператор НЕ (!) (логическое отрицание) меняет логическое значение операнда с истины в ложь и наоборот. Обычно он используется сбулевыми (логическими) значениями. При использовании с любыми другими значениями, если операнд может быть преобразован вtrue, то вернётfalse; в противном случае он возвращаетсяtrue.

Интерактивный пример

const a = 3;const b = -2;console.log(!(a > 0 || b > 0));// Expected output: false

Синтаксис

js
!expr;

Описание

Возвращаетfalse, если операнд может быть преобразован вtrue; в противном случае возвращаетсяtrue.

Если значение может быть преобразовано вtrue, то оно рассматривается какистинноподобное (truthy). Если же значение может быть преобразовано вfalse, то оно называетсяложноподобным (falsy).

Примеры выражений, которые могут быть преобразованы вfalse:

  • null;
  • NaN;
  • 0;
  • пустая строка ("",'',``);
  • undefined.

Несмотря на то, что оператор! может использоваться с операндами, значения которых не относится к типу Boolean, это всё равно булевый оператор, поскольку его возвращаемое значение всегда можно преобразовать вбулевый примитив. Чтобы явно преобразовать возвращаемое значение этого оператора (или вообще любое выражение) в соответствующее значение булевого типа, используйте двойнойоператор НЕ или конструкторBoolean.

Примеры

Использование логического НЕ

В следующем коде показаны примеры использования оператора! (логическое НЕ).

js
n1 = !true; // !t вернёт falsen2 = !false; // !f вернёт truen3 = !""; // !f вернёт truen4 = !"Cat"; // !t вернёт false

Двойное НЕ (!!)

Можно один за другим использовать пару операторов НЕ, чтобы явным образом принудительно преобразовать любое значение в соответствующийбулевый примитив.Преобразование основано на "истинноподобности" или "ложноподобности" значения (см.truthy иfalsy)).

Точно такое же преобразование может быть выполнено с помощью функцииBoolean.

js
n1 = !!true; // !!truthy вернёт truen2 = !!{}; // !!truthy вернёт true: любой объект - истинноподобный...n3 = !!new Boolean(false); // ...даже Boolean-объект со значением false из вызова .valueOf()!n4 = !!false; // !!falsy вернёт falsen5 = !!""; // !!falsy вернёт falsen6 = !!Boolean(false); // !!falsy вернёт false

Конвертация операторов НЕ

Следующая операция сбулевыми значениями:

js
!!bCondition;

всегда эквивалентна:

js
bCondition;

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-logical-not-operator

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp