OVH Cloud OVH Cloud

Boucles

2 réponses
Avatar
Veevee
Bonjour,

pouvez-vous me confirmer qu'en dehors de FOR et de WHILE, il n'y a pas
d'autre syntaxes de boucle (pas d'équivalent au DO/LOOP de Basic)

Merci

2 réponses

Avatar
Olivier Miakinen

pouvez-vous me confirmer qu'en dehors de FOR et de WHILE, il n'y a pas
d'autre syntaxes de boucle (pas d'équivalent au DO/LOOP de Basic)


J'ai fini par trouver un document de référence vraiment satisfaisant.
Mon erreur était de chercher « JavaScript » au lieu d'« ECMAScript ».
<http://www.ecma-international.org/publications/standards/Ecma-262.htm>

Dans ce document, je vois dans la section 12.6 qu'il existe quatre types
de boucles :
12.6.1 : do ... while ...
12.6.2 : while ...
12.6.3 : for ...
12.6.4 : for ... in ...

Je n'ai pas encore compris si le « for-in » peut être utilisé sur un
tableau associatif pour faire comme le foreach de PHP. Quant au DO/LOOP,
je ne sais pas ce que c'est : c'est un « do-while » ?

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
YD

pouvez-vous me confirmer qu'en dehors de FOR et de WHILE, il n'y a pas
d'autre syntaxes de boucle (pas d'équivalent au DO/LOOP de Basic)



Il n'y a pas besoin de LOOP ou NEXT en javascript puisque le corps de la
boucle est définie par un bloc d'instructions encloses dans des
accolades {}. Le DO ... LOOP de VB permet l'exécution d'au moins une fois
de la boucle (même si la condition du WHILE ou UNTIL est fausse). Le do...
while... de javascript permet exactement la même chose.

J'ai fini par trouver un document de référence vraiment satisfaisant.
Mon erreur était de chercher « JavaScript » au lieu d'« ECMAScript ».
<http://www.ecma-international.org/publications/standards/Ecma-262.htm>


Document de référence satisfaisant pour quelqu'un qui a de bonnes (voire
très bonnes) bases de programmation. Le but du document est tout de même
de décrire formellement le langage et est à l'usage des programmeurs qui
implémentent un moteur de script. Pour une utilisation courante, je renverrai
plutôt aux documentations des différentes implémentations, par exemple la
doc javascript Netscape/Mozilla qu'on peut trouver par exemple là (le site
devedge.netscape.com ne répondant plus !) :
http://library.n0i.net/programming/javascript/ (javascript 1.5)
ou celle de JScript, bien faite, au format CHM et in french chez l'éditeur :
http://www.microsoft.com/downloads/details.aspx?FamilyIDç4494d3-c4e1-4e18-9c6c-0ea28c9a5d9d&displaylang=fr
et télécharger scd56fr.exe : http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/FR/scd56fr.exe


Dans ce document, je vois dans la section 12.6 qu'il existe quatre types
de boucles :
12.6.1 : do ... while ...
12.6.2 : while ...
12.6.3 : for ...
12.6.4 : for ... in ...

Je n'ai pas encore compris si le « for-in » peut être utilisé sur un
tableau associatif pour faire comme le foreach de PHP. Quant au DO/LOOP,
je ne sais pas ce que c'est : c'est un « do-while » ?


Les tableaux associatifs mode PHP n'existent pas dans la norme ECMA. En
revanche, un objet javascript peut se comporter + ou - de la même façon.

Le for ... in ... permet d'énumérer les propriétés énumérables (bien sûr,
mais toutes ne le sont pas) d'un objet. À noter que ce qui est appelé méthode
dans d'autres langages est considérée comme une propriété de type Function en
ECMAScript et peut donc être récupérée par une boucle for in. À noter également
que les objets fournis par l'application hôte (dans le cas le plus fréquent un
navigateur internet) ne sont pas tenus de rendre énumérables leurs propriétés,
donc le for in peut fonctionner comme on veut dans tel navigateur et pas dans tel
autre...

--
Y.D.