
Par exemple, les expressions a * b + c et c + a * b bien que mathématiquement équivalentes peuvent ne pas avoir le même coût computationnel. Et pour cause.
Selon que la multiplication soit en début d'expression ou bien en fin d'expression, cela peut influencer drastiquement les performances.
Dans le doute sur le navigateur qui exécutera le code, il vaut mieux donc privilégier la multiplication en début d'expression plutôt qu'en fin.
Ceci peut sans doute s'expliquer par l'ordre d'évaluation d'une expression qui doit probablement se faire de gauche à droite. Si la multiplication qui a une plus grande priorité sur l'addition se trouve en fin d'expression et donc à droite, cela doit probablement obliger l'interpréteur JavaScript de Firefox à empiler l'opérande gauche de l'addition avant de réaliser la multiplication puis de faire la somme proprement dite. Lorsque la multiplication se trouve en début d'expression et donc à gauche, cela permet à l'interpréteur de calculer la multiplication puis l'addition, sans passer par la pile. En tout cas sur Firefox.
Plus généralement, il est sans doute préférable d'écrire les expressions JavaScript dans l'ordre des priorités décroissantes. L'opérateur de plus forte priorité avant celui de plus faible priorité afin de limiter l'usage de la pile.
Chrome par contre normalise probablement l'ordre des opérations au préalable de l'évaluation arithmétique.
Vous avez lu gratuitement 527 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.