« Programmation JavaScript/Ordre d'évaluation » : différence entre les versions

Contenu supprimé Contenu ajouté
Touffy (discussion | contributions)
Création : =Ordre d'évaluation= ==Scripts== Lors du chargement d'une page Web, dès que le navigateur rencontre un script, il l'exécute avant de charger la suite du document HTML. Si le script c...
 
Touffy (discussion | contributions)
Ligne 18 :
<source lang="javascript">str = 1 + 3 + "5" + (-1 + 2)
alert( str ) // affiche "451"</source>
 
Les opérations de priorité identique ne sont pas évaluées simultanément (techniquement ce ne serait pas possible d'ailleurs) et marginalement, cela peut avoir une influence sur le résultat. Par conséquent, les opérations que l'on appelle commutatives en mathématiques ne sont pas strictement commutatives en JavaScript.
<source lang="javascript">u = v + (v = u) // équivalent à trois instructions séparées pour calculer la suite de Fibonacci
// est différent de :
u = (v = u) + v // façon tordue d'écrire u*=2</source>
Dans cet exemple, l'addition n'est pas commutative. Si l'opération v=u est placée à gauche de l'addition, elle est évaluée en premier et modifie l'autre opérande. En revanche, placée à droite, elle est évaluée ''après'' v, et donc la valeur de v utilisée par l'addition est l'ancienne valeur.