Der ein oder andere hat es vielleicht schon gesehen. In Javascript gibt es das doppelte Ausrufezeichen und nicht jeder kann damit auf anhieb etwas anfangen. Mein erster Gedanke war. Doppelte Verneinung. Ein häufiges Stilelement aus der russischen Sprache. Manche denken das ist ein Operator. Wieder andere denken, dass ist ein Tippfehler.
The double exclamation mark
Man nennt das Teil auch „the double exclamation mark“ und es ist kein Operator. Es ist einfach ein doppelter NOT Operator. Halt ein doppeltes verneinen. Hier mal kurz paar Beispiele:
true === !!true
false === !!false
!!0 === false
!!1 === true
!!"" === "" // leerer String ist false
!!null === false // null ist falsch
!!{} === true // das Gleiche wie ist das Objekt leer
!![] === true // das Gleiche wie ist das Array leer
Meine Mama ist nicht nicht Deine Mama, lieber Bruder
Man kann das schon so verwenden. Ich aber nutze es kaum in meinem Code. Ist wohl etwas für die russische Kollegen. Oder Menschen die gerne so was sagen: Meine Mama ist nicht nicht Deine Mama, lieber Bruder.
Hier mal Beispiele zu Sinn- bzw- Unsinnhaftigkeit des logischen Doppel-NOT-Operators:
var isUser = !!user_id;
var isUser = (user_id != 0) ? true : false;
var isUser = (user_id != 0);
macht durchaus sinn weil du damit ein objekt für n if oder return mal schnell checken kannst:
Wenn es zb 0, null, undefined, etc ist bekommst du ein false, sonst ein true. Lässt sich schön zur fehlerbehandlung nutzen wenn es eben zb. null ist.