!! Es wird im Allgemeinen verwendet, um den folgenden Ausdruck in Boolesche Daten (boolean) zu geben, dh es kann nur wahr oder falsch sein;
Ich sehe oft Beispiele wie folgt:
Die Codekopie lautet wie folgt:
var a;
var b = !! a;
A ist standardmäßig undefiniert. ! A ist wahr, !! a ist falsch, also ist der Wert von b falsch, nicht mehr undefiniert, noch andere Werte, was hauptsächlich Bequemlichkeit für das nachfolgende Urteil bietet.
!! Es wird im Allgemeinen verwendet, um den folgenden Ausdruck in Boolesche Daten (boolean) zu geben, dh es kann nur wahr oder falsch sein;
Da JavaScript eine Sprache vom Typ schwach ist (Variablen haben keine festen Datentypen), muss sie manchmal an den entsprechenden Typ gegossen werden, wie z. B.:
a = parseInt ("1234") a = "1234" -0 // Konvertieren Sie in Nummer b = 1234+"// konvertierenUnter ihnen sind die ersten und vierten explizite Konvertierungen, und die 2 und 3 sind implizite Conversions
Boolesche Konvertierung, JavaScript -Kongressregeln sind
Falsch, undefiniert, Null, 0, "" ist falsch
stimmt, 1, "Somestring", [Objekt] ist wahr
Für andere implizit konvertierte Werte wie Null und Undefined! Der Bediener erzeugt echte Ergebnisse. Der Zweck der Verwendung von zwei Ausrufezeichen besteht daher darin, diese Werte in "äquivalente" boolesche Werte umzuwandeln.
Schauen wir uns noch einmal an:
var foo; Alert (! Foo); // undFinin, ein Ausrufezeichen gibt wahr; Alert (! goo); // In Null gibt ein Ausrufezeichen wahr; var o = {flag: true}; var test = !! o.flag; // äquivalent zu var test = o.flag || false; Alarm (Test);Dieses Beispiel zeigt, dass bei undfiniertem und null die Rückgabe eines Ausrufespunkts wahr ist und die Rückgabe von zwei Ausrufezeichen falsch ist, sodass die Funktion der beiden Ausrufespunkte lautet, dass, wenn der Wert der Variablen eindeutig festgelegt wird (nicht null/undfiniert/0/"und" äquivalente Werte), das Ergebnis basierend auf dem tatsächlichen Wert des Variablens des Variablens zurückgegeben wird. Wenn es nicht festgelegt ist, wird das Ergebnis zurückgegeben.