Читать книгу JavaScript – Das Handbuch für die Praxis - David Flanagan - Страница 102

4.10.3Logisches NICHT (!)

Оглавление

Der !-Operator ist ein unärer Operator. Er steht vor seinem einzigen Operanden und hat die Aufgabe, den logischen Wahrheitswert seines Operanden zu verneinen. Ist beispielsweise x ein truthy-Wert, wird !x zu false ausgewertet. Wenn x falsy ist, wird !x zu true ausgewertet.

Im Unterschied zu den Operatoren && und || wandelt der !-Operator seinen Operanden in einen booleschen Wert um (und nutzt dabei die in Kapitel 3 beschriebenen Regeln), bevor er den dabei erhaltenen Wert negiert bzw. umkehrt. Das heißt, dass ! immer true oder false liefert und Sie deswegen einen beliebigen Wert x in seinen zugehörigen Wahrheitswert umwandeln können, indem Sie den Operator einfach zweimal anwenden: !!x (siehe 3.9.2).

Da ! ein unärer Operator ist, hat er hohen Vorrang und bindet stark. Wenn Sie den Wert eines Ausdrucks wie p && q invertieren wollen, müssen Sie deswegen Klammern nutzen: !(p && q). Es lohnt sich, zwei Theoreme der booleschen Algebra festzuhalten, die wir auf folgende Weise in JavaScript-Syntax ausdrücken können:

// Die zwei de-morganschen Gesetze

!(p && q) === (!p || !q) // => true: Für alle Werte von p und q.

!(p || q) === (!p && !q) // => true: Für alle Werte von p und q.

JavaScript  –  Das Handbuch für die Praxis

Подняться наверх