Pe langa instructiunile "for" si "while" avem si alte instructiuni 'complementare' care pot fi executate impreuna cu acestea.
Cand este folosita o instructiune ciclica, aceasta continua sa se repete pana cand conditia este FALSE. Aceasta excutie poate fi schimbata cu ajutorul instructiunilor break si continue, care dau posibilitatea intreruperii ciclului sau iesirea din acesta inainte de a se ajunge la sfarsit (la ultima acolada).
<script type="text/javascript">Acest script va afisa urmatorul rezultat:
for (x=1; x<10; x++) {
document.write("<br /> X este "+x);
if (x==3) {
break;
}
}
</script>
X este 1- Dupa cum puteti observa, nu au fost executate toate ciclurile instructiunii "for", conform conditiei (pana cand 'x' ar fi avut valoarea 10), executia se intrerupe cand 'x' are valoarea 3.
X este 2
X este 3
<script type="text/javascript">Acest script va afisa urmatorul rezultat:
for (x=1; x<8; x++) {
if (x==3 || x==5) {
continue;
}
document.write("<br /> X este "+x);
}
</script>
X este 1- Observati ca atunci cand 'x' are valoarea 3 sau 5, prin instructiunea "continue" se intrerupe executia codului care urmeaza dupa aceasta (aici "document.write("<br /> X este "+x);") din repetarea curenta, dar se continua cu verificare conditiei instructiunii "for" si executia ciclului.
X este 2
X este 4
X este 6
X este 7
Instructiunea label poate fi folosita impreuna cu "break" sau "continue". Aceasta este utilizata atunci cand folosim instructiuni ciclice imbricate, permitand controlul oricarei instructiuni care imbrica alte instructiuni.
Studiind exemplul urmator, puteti intelege mai bine modul de utilizare a unei instructiuni label:
<script type="text/javascript">- Am etichetat o serie de instructini ciclice imbricate (aici doua "for") cu eticheta "loopX", care va fi folosita in a doua instructiune "for" imbricata, impreuna cu "break".
loopX:
for (x=1; x<=5; x++) {
for (y=3; y<8; y++) {
document.write("X este "+x+" - Y este "+y+" --" );
if (x==4) {
break loopX;
}
}
document.write("<br />")
}
</script>
X este 1 - Y este 3 --X este 1 - Y este 4 --X este 1 - Y este 5 --X este 1 - Y este 6 --X este 1 - Y este 7 --- Observati ca desi "break" este inclus in interiorul celei dea doua instructiune "for", prin specificarea lui "loopX", care este eticheta intregului ansamblu de instructiuni imbricate, se va intrerupe executia intregului ansamblu, nu numai instructiunii "for" unde este adaugat "break". Daca eliminati eticheta "loopX" veti vedea diferenta.
X este 2 - Y este 3 --X este 2 - Y este 4 --X este 2 - Y este 5 --X este 2 - Y este 6 --X este 2 - Y este 7 --
X este 3 - Y este 3 --X este 3 - Y este 4 --X este 3 - Y este 5 --X este 3 - Y este 6 --X este 3 - Y este 7 --
X este 4 - Y este 3 --
Aceasta comanda se foloseste pentru a evita referirea in mod repetat la un obiect, atunci cand ii accesam metodele sau proprietatile de mai multe ori. Orice metoda sau proprietate dintr-un bloc "with" pe care JavaScript nu o recunoaste va fi asociata cu obiectul specificat pentru acel bloc.
Sintaxa acestei instructiuni este :
<script type="text/javascript">Acest script va afisa :
<!--
with(document) {
write("Salut");
write("Acum nu mai este necesara folosirea obiectului ca prefix al functiei");
}
//-->
</script>
SalutIn mod normal, pt. a afisa un text folosim sintaxa "document.write("text ...")", dar aici, prin folosirea lui 'with' impreuna cu obiectul "document", nu mai este necesara adaugarea acestuia la metoda "write", astfel se scurteaza codul scriptului.
Acum nu mai este necesara folosirea obiectului ca prefix al functiei