Flash Lite 2 |
|||
| Flash Lite 2.x ActionScript-Referenzhandbuch > Elemente der ActionScript-Sprache > Operatoren > === 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
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.
Boolean - Das boolesche Ergebnis des Vergleichs.
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
! logischer NOT-Operator, != Ungleichheits-Operator, !== Strikter Ungleichheits-Operator, && logischer AND-Operator, || logischer OR-Operator, == Gleichheits-Operator