=== Strikter Gleichheits-Operator

expression1 === expression2

Prüft zwei Ausdrücke auf strikte Gleichheit. Der strikte Gleichheits-Operator (===) bewirkt das Gleiche wie der Gleichheits-Operator (==), es erfolgt jedoch keine Umwandlung der Datentypen. Das Ergebnis ist true, wenn die beiden Ausdrücke, einschließlich Datentypen, gleich sind.

Die Definition von "gleich" hängt vom Datentyp des Parameters ab:

Verfügbarkeit: ActionScript 1.0, Flash Lite 2.0

Operanden

expression1 : Object - Eine Zahl, ein String, ein boolescher Wert, eine Variable, ein Objekt, ein Array oder eine Funktion.

expression2 : Object - Eine Zahl, ein String, ein boolescher Wert, eine Variable, ein Objekt, ein Array oder eine Funktion.

Rückgabewerte

Boolean - Das boolesche Ergebnis des Vergleichs.

Beispiel

Die Kommentare im folgenden Code zeigen den Rückgabewert von Operationen mit dem Gleichheits- und strikten Gleichheits-Operator an:

// Beide Operatoren geben "true" zurück, da keine Umwandlung durchgeführt wurde.
var string1:String = "5";
var string2:String = "5";
trace(string1 == string2); // true
trace(string1 === string2); // true
// Durch automatische Typisierung wird in diesem Beispiel 5 in "5" umgewandelt.
var string1:String = "5";
var num:Number = 5;
trace(string1 == num); // true
trace(string1 === num); // false
// Durch automatische Typisierung wird in diesem Beispiel "true" in "1" umgewandelt.
var string1:String = "1";
var bool1:Boolean = true;
trace(string1 == bool1); // true
trace(string1 === bool1); // false
// Durch automatische Typisierung wird in diesem Beispiel "false" in "0" umgewandelt.
var string1:String = "0";
var bool2:Boolean = false;
trace(string1 == bool2); // true
trace(string1 === bool2); // false

Die folgenden Beispiele veranschaulichen, welche Unterschiede es bei Operationen für strikte Gleichheit mit referenzierenden Variablen im Gegensatz zu Werte enthaltenden Variablen gibt. Dies ist einer der Gründe, warum Stringliterale konsistent verwendet und die Verwendung des Operators new bei der String-Klasse vermieden werden sollte.

// String-Variable mithilfe eines Literalwerts erstellen
var str:String = "asdf";
// Variable als Referenz erstellen
var stringRef:String = new String("asdf");
// Der Gleichheits-Operator unterscheidet nicht zwischen Literalen, Variablen
// und Referenzen.
trace(stringRef == "asdf"); // true
trace(stringRef == str); // true
trace("asdf" == str); // true
// Mit dem strikten Gleichheits-Operator werden Variablen, die Referenzen darstellen,
// von Literalen und Variablen unterschieden.
trace(stringRef === "asdf"); // false
trace(stringRef === str); // false

Siehe auch

! logischer NOT-Operator, != Ungleichheits-Operator, !== Strikter Ungleichheits-Operator, && logischer AND-Operator, || logischer OR-Operator, == Gleichheits-Operator