Logisches NICHT (!)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Der logische NICHT (!)-Operator (logische Komplement- oder Negationsoperation) kehrt Wahrheit in Falschheit und umgekehrt um. Er wird typischerweise mit boolean (logischen) Werten verwendet. Wird er mit Nicht-Boolean-Werten verwendet, gibt er false zurück, wenn sein einzelner Operand in true umgewandelt werden kann; andernfalls gibt er true zurück.

Probieren Sie es aus

const a = 3;
const b = -2;

console.log(!(a > 0 || b > 0));
// Expected output: false

Syntax

js
!x

Beschreibung

Gibt false zurück, wenn sein einzelner Operand in true umgewandelt werden kann; andernfalls gibt er true zurück.

Wenn ein Wert in true umgewandelt werden kann, wird der Wert als truthy bezeichnet. Wenn ein Wert in false umgewandelt werden kann, wird der Wert als falsy bezeichnet.

Beispiele für Ausdrücke, die in false umgewandelt werden können, sind:

  • null;
  • NaN;
  • 0;
  • leerer String ("" oder '' oder ``);
  • undefined.

Obwohl der !-Operator mit Operanden verwendet werden kann, die keine Boolean-Werte sind, kann er trotzdem als ein logischer Operator betrachtet werden, da sein Rückgabewert immer in einen boolean-Primitivwert umgewandelt werden kann. Um den Rückgabewert (oder allgemein jeden Ausdruck) ausdrücklich in den entsprechenden Boolean-Wert umzuwandeln, verwenden Sie den doppelten NICHT-Operator (!!) oder den Boolean-Konstruktor.

Beispiele

Verwendung von NICHT

Der folgende Code zeigt Beispiele für den !-Operator (logisches NICHT).

js
!true; // !t returns false
!false; // !f returns true
!""; // !f returns true
!"Cat"; // !t returns false

Doppeltes NICHT (!!)

Es ist möglich, eine Reihe von NICHT-Operatoren zu verwenden, um explizit die Umwandlung eines beliebigen Wertes in den entsprechenden boolean-Primitivwert zu erzwingen. Die Umwandlung basiert auf der "Truthiness" oder "Falsiness" des Wertes (siehe truthy und falsy).

Die gleiche Umwandlung kann durch die Boolean()-Funktion durchgeführt werden.

js
!!true; // !!truthy returns true
!!{}; // !!truthy returns true: any object is truthy...
!!new Boolean(false); // ...even Boolean objects with a false .valueOf()!
!!false; // !!falsy returns false
!!""; // !!falsy returns false
!!Boolean(false); // !!falsy returns false

Umwandlung zwischen NICHT-Operationen

Die folgende Operation, die booleans beinhaltet:

js
!!bCondition

ist immer gleich:

js
bCondition

Spezifikationen

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

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Logical NOT (!)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch