Flash Lite 2 |
|||
| Guide de référence du langage ActionScript Flash Lite 2.x > Eléments du langage ActionScript > Opérateurs > Opérateur === d'égalité stricte | |||
expression1 === expression2
Teste l'égalité de deux expressions ; l'opérateur d'égalité stricte (===) se comporte de la même façon que l'opérateur d'égalité (==), à la différence que les types de données ne sont pas convertis. Le résultat est true lorsque les deux expressions sont égales, types de données inclus.
La définition de l'égalité dépend du type de données du paramètre :
Disponibilité : ActionScript 1.0 ; Flash Lite 2.0
expression1 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction.
expression2 : Object - Nombre, chaîne, valeur booléenne, variable, objet, tableau ou fonction.
Boolean - Résultat booléen de la comparaison.
Les commentaires inclus dans le code suivant affichent la valeur renvoyée des opérations qui utilisent les opérateurs d'égalité et d'égalité stricte :
// Les deux instructions renvoient true, car aucune conversion ne se // produit var string1:String = "5"; var string2:String = "5"; trace(string1 == string2); // true trace(string1 === string2); // true // Le typage automatique des données convertit 5 en « 5 » dans cet exemple var string1:String = "5"; var num:Number = 5; trace(string1 == num); // true trace(string1 === num); // false // Le typage automatique des données convertit vrai en « 1 » dans cet // exemple var string1:String = "1"; var bool1:Boolean = true; trace(string1 == bool1); // true trace(string1 === bool1); // false // Le typage automatique des données convertit false en « 0 » dans cet // exemple var string1:String = "0"; var bool2:Boolean = false; trace(string1 == bool2); // true trace(string1 === bool2); // false
Les exemples suivants illustrent la façon dont l'opérateur d'égalité stricte traite les références de variables différemment des variables incluant des valeurs littérales. C'est l'une des raisons pour laquelle il convient d'utiliser de façon systématique des littéraux de chaîne et d'éviter d'utiliser l'opérateur new avec la classe String.
// Crée une variable de type chaîne à partir d'une valeur littérale
var str:String = "asdf";
// Crée une variable qui est une référence
var stringRef:String = new String("asdf");
// L'opérateur d'égalité ne fait pas de différence entre les littéraux,
// les variables et les références
trace(stringRef == "asdf"); // true
trace(stringRef == str); // true
trace("asdf" == str); // true
// L'opérateur d'égalité stricte analyse les variables qui sont des
// références par oppositions aux littéraux et aux variables
trace(stringRef === "asdf"); // false
trace(stringRef === str); // false
Opérateur ! NOT logique, Opérateur != (inégalité), Opérateur !== d'inégalité stricte, Opérateur && (AND logique), Opérateur || (OR logique), Opérateur == (égalité)