Kao što smo već u jednom od prethodnih priloga naveli, JavaScript podržava dva tipa petlji, a to su: For petlja (objašnjena ranije) i Do... While petlja. Petlje "Do... While" su malo nezgrapnije i nečitljivije od "For" petlji. Sintaksa same petlje je sledeća:
do {
...niz instrukcija...
}
while (uslov za nastavak petlje)
Osnovna razlika između "For" i "Do... While" petlji je u tome što se unutrašnji niz instrukcija kod petlje "Do... While" mora izvršiti bar jednom, a kod petlje "For" ne mora ni jednom. Ovo je zbog toga što se uslov izvršavanja kod "For" petlje nalazi na početku celog izraza, a kod "Do... While" petlje na kraju. Redosled izvršavanja "Do... While" petlje je sledeći:
- JavaScript interpreter izvršiće sve instrukcije koje su u okviru segmenta Do - While.
- Potom se proverava uslov za nastavak petlje, i ako je njegova vrednost "True", petlja se vraća na početak (Do) i ponovno izvršavanje svih unutrašnjih instrukcija. Ukoliko uslov nije zadovoljen i njegova vrednost bude "False", izvršavanje se prebacuje na prvu sledeću naredbu koja sledi iz petlje, a u tom slučaju se skup naredbi izvršio samo jednom .
Sva prethodna priča će biti jasnija uz primer "Do... While" petlje:
<HTML>
<HEAD>
</HEAD>
<BODY>
<table border=1>
<SCRIPT Language=Javascript>
a=0;
do {
a=a+1;
kvad=a*a;
document.write ("<TR><TD>Broj="+a+"</TD><TD>Kvadrat="+kvad+"</TD></TR>");
}
while (a<5);
</SCRIPT>
</table>
</BODY>
</HTML>
Skript počinje postavljanjem vrednosti varijable "a" na nulu. Zatim se ulazi u "Do... While" petlju, te se vrednost varijable povećava za jedan i računa se kvadrat varijable "a" sa novom vrednošću. Sledi formiranje jednog reda tabele i dve ćelije, u koje smeštamo vrednost varijable "a" i njen kvadrat (varijabla "kvad"). Dolazimo do kraja petlje gde sve vrši provera uslova za nastavak petlje, a u našem sličaju uslov je da vrednost varijable "a" ne bude veća od petice. Pri prvom prolazu vrednost varijable je jedan, u drugom dva itd. Pošto varijablu svaki put uvećavamo za jedan, petlja će se izvršiti pet puta i kao rezultat dobićemo tabelu kao na slici.