mozilla
Vos résultats de recherche

    Précédence des opérateurs

    Résumé

    La précédence des opérateurs détermine l'ordre dans lequel les opérateurs sont évalués. Les opérateurs avec la plus haute précédence sont évalués en premier.

    Un exemple classique :

    3 + 4 * 5 // retourne 23	 
    

    L'opérateur de multiplication (« * ») a une précédence plus haute que l'opérateur d'addition (« + ») et est donc évalué en premier.

    Associativité

    L'associativité détermine l'ordre dans lequel des opérateurs de même précédence sont évalués. Par exemple, considérons l'expression suivante :

    a OP b OP c
    

    Une associativité de gauche (gauche à droite) signifie qu'elle est évaluée comme (a OP b) OP c, tandis qu'une associativité de droite (droite à gauche) signifie qu'elle est interprétée comme a OP (b OP c). Les opérateurs d'affectation sont associatifs de droite, on peut donc écrire :

    a = b = 5;
    

    avec le résultat attendu que a et b obtiennent la même valeur de 5. C'est parce que l'opérateur d'affectation retourne la valeur qu'il affecte. D'abord, b est défini à la valeur 5. Ensuite, a est défini à la valeur de b.

    Tableau

    Le tableau suivant est classé de la plus haute (1) à la plus basse (19) précédence.

    Précédence Type d'opérateur Associativité Opérateurs individuels
    0 Groupement Non applicable ( … )
    1 Accès à un membre Gauche à droite … . …
    Accès à un membre calculé Gauche à droite … [ … ]
    new (avec une liste d'arguments) Non applicable new … ( … )
    2 Appel de fonction Gauche à droite … ( )
    new (sans liste d'arguments) Gauche à droite new …
    3 Incrémentation suffixe Non applicable … ++
    Décrémentation suffixe Non applicable … --
    4 NON logique Droite à gauche ! …
    NON binaire Droite à gauche ~ …
    Plus unaire Droite à gauche + …
    Négation unaire Droite à gauche - …
    Incrémentation préfixe Droite à gauche ++ …
    Décrémentation préfixe Droite à gauche -- …
    typeof Droite à gauche typeof …
    void Droite à gauche void …
    delete Droite à gauche delete …
    5 Multiplication Gauche à droite … * …
    Division Gauche à droite … / …
    Reste Gauche à droite … % …
    6 Addition Gauche à droite … + …
    Soustraction Gauche à droite … - …
    7 Décalage binaire à gauche Gauche à droite … << …
    Décalage binaire à droite Gauche à droite … >> …
    Décalage binaire à droite non-signé Gauche à droite … >>> …
    8 Inférieur strict Gauche à droite … < …
    Inférieur ou égal Gauche à droite … <= …
    Supérieur strict Gauche à droite … > …
    Supérieur ou égal Gauche à droite … >= …
    in Gauche à droite … in …
    instanceof Gauche à droite … instanceof …
    9 Égalité faible Gauche à droite … == …
    Inégalité faible Gauche à droite … != …
    Égalité stricte Gauche à droite … === …
    Inégalité stricte Gauche à droite … !== …
    10 ET binaire Gauche à droite … & …
    11 OU exclusif (XOR) binaire Gauche à droite … ^ …
    12 OU binaire Gauche à droite … | …
    13 ET logique Gauche à droite … && …
    14 OU logique Gauche à droite … || …
    15 Opérateur conditionnel ternaire Droite à gauche … ? … : …
    16 Affectation Droite à gauche … = …
    … += …
    … -= …
    … *= …
    … /= …
    … %= …
    … <<= …
    … >>= …
    … >>>= …
    … &= …
    … ^= …
    … |= …
    17 yield Droite à gauche yield …
    18 Décomposition Non applicable ...
    19 Virgule Gauche à droite … , …

     

    Étiquettes et contributeurs liés au document

    Contributors to this page: teoli, SphinxKnight, Blackhole
    Dernière mise à jour par : SphinxKnight,
    Masquer la barre latérale