Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
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 Juli 2015.
Derlogische NICHT (!)-Operator (logisches Komplement, Negation) verwandelt Wahrheit in Falschheit und umgekehrt. Er wird typischerweise mit booleschen (logischen) Werten verwendet. Bei Verwendung mit nicht-booleschen Werten gibt erfalse zurück, wenn sein einzelner Operand intrue konvertiert werden kann; andernfalls gibt ertrue zurück.
In diesem Artikel
Probieren Sie es aus
const a = 3;const b = -2;console.log(!(a > 0 || b > 0));// Expected output: falseSyntax
!xBeschreibung
Gibtfalse zurück, wenn sein einzelner Operand intrue konvertiert werden kann; andernfalls gibt ertrue zurück.
Wenn ein Wert intrue konvertiert werden kann, wird der Wert alstruthy bezeichnet. Wenn ein Wert infalse konvertiert werden kann, wird der Wert alsfalsy bezeichnet.
Beispiele für Ausdrücke, die infalse konvertiert werden können, sind:
null;NaN;0;- leerer String (
""oder''oder``); undefined.
Obwohl der!-Operator mit Operanden verwendet werden kann, die keine booleschen Werte sind, kann er dennoch als boolescher Operator betrachtet werden, da sein Rückgabewert immer in einenbooleschen primitiven Wert umgewandelt werden kann. Um den Rückgabewert (oder einen beliebigen Ausdruck im Allgemeinen) explizit in den entsprechenden booleschen Wert zu konvertieren, verwenden Sie einen doppelten NICHT-Operator (!!) oder denBoolean-Konstruktor.
Beispiele
>Verwendung von NICHT
Der folgende Code zeigt Beispiele für den! (logischen NICHT)-Operator.
!true; // !t returns false!false; // !f returns true!""; // !f returns true!"Cat"; // !t returns falseDoppelte NICHT (!!)
Es ist möglich, mehrere NICHT-Operatoren in Folge zu verwenden, um die Konvertierung eines beliebigen Werts in den entsprechendenbooleschen primitiven Wert explizit zu erzwingen. Die Konvertierung basiert auf der "Truthiness" oder "Falsiness" des Wertes (siehetruthy undfalsy).
Die gleiche Konvertierung kann durch dieBoolean()-Funktion erfolgen.
!!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 falseKonvertierung zwischen NICHTs
Die folgende Operation mitBooleschen:
!!bConditionist immer gleichbedeutend mit:
bConditionSpezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-logical-not-operator> |