Heim > Web-Frontend > js-Tutorial > Die Rolle von zwei Ausrufezeichen in JavaScript

Die Rolle von zwei Ausrufezeichen in JavaScript

高洛峰
Freigeben: 2016-11-28 10:49:13
Original
1577 Leute haben es durchsucht

var a;

var b=!!a;

a ist standardmäßig undefiniert. !a ist wahr, !!a ist falsch, daher ist der Wert von b falsch, nicht undefiniert oder andere Werte, hauptsächlich um spätere Urteile zu erleichtern.

!! Wird im Allgemeinen verwendet, um den folgenden Ausdruck in Daten vom Typ Boolean (Boolean) zu zwingen, d. h. er kann nur wahr oder falsch sein, da JavaScript eine schwach typisierte Sprache ist ( Variablen haben kein fester Datentyp), daher müssen sie manchmal in den entsprechenden Typ umgewandelt werden, ähnlich wie:

a=parseInt(“1234″)

a="1234″-0 // Konvertieren in Zahl

b=1234+““ //In String konvertieren

c=someObject.toString() //Objekt in String konvertieren

wobei Typ 1 und 4 sind explizite Konvertierungen, 2 und 3 sind implizite Konvertierungen

Boolesche Konvertierung, die JavaScript-Konventionsregeln sind

falsch, undefiniert, null, 0, "" sind falsch

wahr, 1, „somestring“, [Object] ist wahr

Für andere implizit konvertierte Werte wie null und undefiniert erzeugt der !-Operator ein wahres Ergebnis. Der Zweck der Verwendung von zwei Ausrufezeichen besteht also in der Konvertierung diese Werte in „äquivalente“ boolesche Werte; ===================================== =========== =========================

Lassen Sie uns ein einfaches Beispiel zur Veranschaulichung verwenden:

var o={flag:true };

var test=!!o.flag;//Entspricht var test=o.flag||false;

alert(test);

Da die Verwendung des !-Operators auf null und undefiniert führt Um ein echtes Ergebnis zu erzielen, besteht der Zweck der Verwendung von zwei Ausrufezeichen darin, dass test natürlich denselben Wert wie o.flag annimmt, wenn der Wert des Flags in o explizit festgelegt ist (nicht null/undefiniert/0""/usw.). ; wenn nicht festgelegt, wird der Test standardmäßig auf „false“ und nicht auf „null“ oder „undefiniert“ gesetzt.
Das klassische Beispiel in jQuery lautet wie folgt: (jQuery 1.7.0.js: Zeile 748)
grep: function( elems, callback, inv ) {
var ret = [], retVal;
inv = !!inv;

// Durchsuchen Sie das Array und speichern Sie nur die Elemente
//, die die Validatorfunktion bestehen
for ( var i = 0, length = elems.length; i < length; i++ ) {

retVal = !!callback( elems[ i ], i );

if ( inv !== retVal ) {
ret.push( elems[ i ] );
}
}

return ret;
}
Bei Verwendung der grep-Funktion, wenn der dritte Parameter angegeben ist und nicht der Wert null/undefiniert/0"/usw. ist , dann ist inv wahr, andernfalls ist es falsch. Damit soll sichergestellt werden, dass die Werte von inv und retVal nur aus wahr/falsch und nicht aus anderen Werten übernommen werden können, um spätere Beurteilungen zu erleichtern.



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage