duminică, 13 martie 2011

JavaScript - Functii (part9)

Functii - 1

Functiile ajuta la divizarea mai multor sarcini pe care trebuie sa le faca un program.
O functie poate contine mai multe instructiuni si comenzi care ulterior pot fi utilizate usor si de mai multe ori prin apelarea functiei care le contine.
Daca un program necesita multe linii de cod, folosind functiile putem imparti codul in parti mai mici pe care le putem utiliza separat acolo unde este nevoie.
Pot fi doua feluri de functii:

predefinite - cum sunt de exemplu: "parseInt(string)", "parseFloat(string)", ...
Create de programator
- care returneaza o valoare
- care nu returneaza o valoare
1. Crearea (definirea) functiilor
O functie se defineste la inceputul fisierului, in sectiunea head si poate fi folosita in cadrul paginii prin apelarea ei. Scriptul care contine definirea unei functii se adauga in sectiunea "head" pentru a fi siguri ca aceasta a fost incarcata inainte de a fi apelata.

Pentru crearea unei functii se foloseste cuvantul function urmat de numele pe care vrem sa-l dam functiei dupa care putem adauga intre paranteze rotunde argumentele (numite si atribute) functiei (separate prin virgula daca sunt mai multe) si intre acolade corpul functiei care contine codul care trebuie executat.
Forma generala a unei functii este urmatoarea:



function nume_functie(argument1, argument, ...) {
    codul care va fi executat
}
Argumentele sunt variabile folosite de functie si a caror valoare este preluata la apelarea functiei.
Atributele nu sun obligatorii, o functie poate fi definita si fara argumente, dar se pastreaza parantezele rotunde, astfel sintaxa unei functii fara argumente este urmatoarea:
function nume_functie() {
    codul care va fi executat
}

2. Instructiunea return
O functie care returneaza un rezultat foloseste pentru aceasta instructiunea return. Aceasta specifica valoarea pe care o returneaza functia cand este apelata.
Iata un exemplu din care pouteti intelege modul de aplicare a instructiunii return:

function suma(x, y) {
    z = x+y;
    return z
}
- "suma" reprezinta numele functiei (puteti da orice nume care respecta regulile limbajuli si nu sunt identice cu cele rezervate, cum ar fi "function"), "x, y" reprezinta argumentele functiei a caror valoare este data cand functia este apelata. Intre acolade avem codul care trebuie executat si care, prin instructiunea "return" va returna valoarea lui "z" care reprezinta suma lui "x" si "y". Astfel valoarea returnata de functia "suma()" va fi valoarea pe care o are "z".
3. Apelarea functiilor
Dupa ce am creat o functie, pentru a fi folosita, fuctia trebuie apelata.
- O functie care contine argumente se apeleaza in felul urmator:

nume_functie(argument1, argument, ...)
- O functie fara argumente se apeleaza in felul urmator:
nume_functie()
Observati ca la apelul functiei nu se mai folosesc cuvantul "function" si acoladele
In locul in care am apelat astfel o functie va fi executat corpul acelei functii.
4. Exemple de scripturi cu functii
In continuare studiati exemplele de mai jos, care folosesc functii simple, astfel veti intelege mai bine modul de lucru si executie a unei functii.

- Exemplu 1 - functie fara argument
Urmatorul exemplu prezinta un script care afiseaza un text:

<html>
<head>
    <script type="text/javascript">
    <!—
        function exemplu1() {
            return document.write("Bine ati venit!")
        }
    //-->
    </script>
</head>


<body>
    <script type="text/javascript">
        exemplu1()
    </script>
</body>
</html> - Observati ca functia "exemplu1" a fost definita in sectiunea head a documentului HTML si apoi a fost apelata in sectiunea "body", unde va afisa textul "Bine ati venit!"

- Exemplu 2 - functie cu un argument

Urmatorul exemplu prezinta un script care la apasarea unui buton deschide o fereastra "alert" care va afisa un text in functie de argumentul transmis.
Specificatie - Sintaxa generala a functiei "alert" din JavaScript este: alert('Text'), aceasta deschide o fereastra de atentionare in care este afisat mesajul dintre paranteze "Text".
<html>
<head>
    <script type="text/javascript">
    <!--
        function exemplu2(text) {
            alert(text);
        }
    //-->
    </script>
</head>
<body>
    <form>
        <input type="button" onclick="exemplu2('Buna dimineata!')" value="dimineata" />
        <input type="button" onclick="exemplu2('Buna ziua!')" value="ziua" />
    </form>
</body>
</html> Acest cod va afisa in pagina HTML urmatorul rezultat:



- Studiati cu atentie scriptul si modul in care acesta este apelat.
Textul afisat de "alert" este preluat de la valoarea argumentului functiei "exemplu2" care l-a randul lui il preia din ceea ce este scris la apelarea functiei.
- "onclick" (la click) este o comanda JavaScript care specifica momentul cand trebuie sa fie executata functia.



Cand apasati cele doua butoane veti obtine o fereastra 'Alert' cu doua mesaje diferite (specificate la fiecare apelare a functiei "exemplu2")

- Exemplu 3 - functie cu doua argumente


Urmatorul exemplu prezinta un script care la apasarea unui buton deschide o fereastra "alert" care va afisa suma a doua numere.

<html>
<head>
    <script type="text/javascript">
    <!--
        function exemplu3(x,y) {
            var z = 0;
            z = x+y;
            return alert("Suma lui "+x+" si "+y+" este: "+z)
        }
    //-->
    </script>
</head>
<body>
    <form>
        <input type="button" onclick="exemplu3(7, 8)" value="Suma" />
    </form>
</body>
</html> Acest cod va afisa in pagina HTML urmatorul rezultat:

- Studiati cu atentie scriptul, modul in care au fost combinate: "alert()", sirul si valoarea argumentelor "x, y", variabila "z" si modul in care functia "exemplu3" este apelata.
Cand apasati pe buton, veti obtine suma numerelor 7 si 8.

In interiorul functiei pot fi folosite instructiuni complexe, cum ar fi "for", "if", "while"; care pot lua decizii diferite in functie de argumentele functiei. Depinde doar de cunostintele si imaginatia dv.

JavaScript - Ferestre Alerte, Prompt si Confirm (part8)

Ferestre Alert, Prompt si Confirm

Alert, Prompt si Confirm sunt ferestre predefinite de dialog, acestea apartin direct obiectului "Window" (despre obiecte si ierarhia acestora puteti invata in Lectia 12).

1. Fereastra Alert
Probabil ati intalnit pana acum, de mai multe ori exemple cu "Alert".
Fiind un element simplu si deja cunoscut, voi face o scurta prezentare a sintaxei acestuia.
Crearea ferestrelor alert se face cu sintaxa:

window.alert("mesaj")
- Unde "mesaj" este textul care va apare in fereastra Alert.
Urmatorul exemplu deschide o fereastra cu mesajul "Bine ai venit".
<script type="text/javascript">
<!--
    window.alert("Bine ai venit");
//-->
</script> In browser va apare o fereastra ca in imaginea urmatoare




2. Fereastra Prompt
Fereastra Prompt se creaza cu sintaxa:

window.prompt("mesaj", "default")
- Unde "mesaj" este un text care va apare in fereastra, deasupra unei casute de text input; iar "default" este textul care va apare in casuta input.
Urmatorul exemplu deschide o fereastra "Prompt".
<script type="text/javascript">
<!--
    window.prompt("Scrieti numele", "Nume");
//-->
</script> In browser va apare o fereastra ca in imaginea urmatoare


Textul pe care utilizatorul il adauga in campul din fereastra prompt poate fi preluat intr-o variabila si folosit apoi in script.

Iata un exemplu in care atribuim deschiderea ferestrei Prompt unei variabile (aici "nume"), care va prelua sirul adaugat in caseta de text, apoi valoarea acestei variabile o introducem in mesajul unei ferestre Alert:

<script type="text/javascript">
<!--
    var nume = window.prompt("Scrieti numele", "Nume");
    alert("Salut "+nume+"\n Bine ai venit.");
//-->
</script> - Dupa ce utilizatorul scrie numele in fereastra Prompt si apasa OK se va deschide o fereastra Alert care contine in mesaj numele adaugat de utilizator.
- Am folosit "\n" pentru a adauga o linie noua, dupa "nume", in textul care apare in fereastra Alert.
- Incercati si singuri acest exemplu.
3. Fereastra Confirm
Fereastra de confirmare se creaza cu sintaxa:

window.confirm("intrebare")
In fereastra de confirmare va apare textul "intrebare" si doua butoane "OK" si "Cancel".
Aceasta fereastra este folosita pentru a fi executata o comanda cand este apasat butonul "OK" (returneaza TRUE) si alta comanda cand este apasat butonul "Cancel" (returneaza FALSE)
Urmatorul exemplu deschide o fereastra "Confirm" in care apare intrebarea "Rezultatul lui 0+0 este 0?". Daca este apasat butonul "OK" apare o fereastra Alert cu mesajul "Corect", iar daca este apasat butonul "Cancel" apare o fereastra Alert cu mesajul "Incorect"
<script type="text/javascript">
<!--
    intrebare = window.confirm("Rezultatul lui 0+0 este 0?");
    if (intrebare) alert("Corect");
    else alert("Incorect");
//-->
</script> In browser va apare o fereastra ca in imaginea urmatoare

JavaScript - Instructiuni complementare (part7)

Instructiuni complementare

Pe langa instructiunile "for" si "while" avem si alte instructiuni 'complementare' care pot fi executate impreuna cu acestea.

break - intrerupe definitiv executia unui ciclu.


continue - sare peste instructiunile care au mai ramas din ciclul respectiv.
label (eticheta) - permite iesirea dintr-un ciclu cu instructiuni ciclice imbricate, la o locatie specificata a scriptului.
with - se foloseste pentru a fi evitata specificarea repetata la referirea unui obiect, cand ii accesam metodele sau proprietatile.
1. Instructiunile break si continue
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).

break - intrerupe definitiv executarea ciclului.
Iata un exemplu din care puteti intelege modul de lucru a lui break:
<script type="text/javascript">
for (x=1; x<10; x++) {
    document.write("<br /> X este "+x);
    if (x==3) {
        break;
    }
}
</script> Acest script va afisa urmatorul rezultat:
X este 1
X este 2
X este 3 - 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.

continue - intrerupe executia repetarii curente, inainte de a fi executate celelalte operatii din ciclu, apoi se verifica din nou conditia si se continua cu executarea ciclului.
Studiati si urmatorul exemplu, in care este folosit continue:
<script type="text/javascript">
for (x=1; x<8; x++) {
    if (x==3 || x==5) {
        continue;
    }
    document.write("<br /> X este "+x);
}
</script> Acest script va afisa urmatorul rezultat:
X este 1
X este 2
X este 4
X este 6



X este 7 - 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.
2. Instructiunea eticheta (label)
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">
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> - 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".
Acest script va afisa urmatorul rezultat:
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 --
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 -- - 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.
3 Instructiunea with
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 :

with (obiect) {
    instructiuni
}
- Unde "obiect" specifica referirea la obiect care trebuie folosita, daca aceasta nu exista in blocul "instructiuni". Ajuta mult cand se utilizeaza de mai multe ori functii matematice avansate, prin intermediul obiectului "Math". (Acest obiect va fi explicat mai tarziu).
In exemplul urmator este prezentat modul de folosire a instructiunii "with" :
<script type="text/javascript">
<!--
with(document) {
    write("Salut");
    write("Acum nu mai este necesara folosirea obiectului ca prefix al functiei");
}

//-->

</script> Acest script va afisa :
Salut
Acum nu mai este necesara folosirea obiectului ca prefix al functiei In 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.

JavaScript - Instructiuni ciclice\repetitive (part6)

Instructiuni ciclice (repetitive)

Instructiunile repetitive se folosesc atunci cand se doreste efectuarea unei comenzi de mai multe ori.
In java script putem folosi urmatoarele instructiuni ciclice:

for - la fel ca si in alte limbaje de programare, executa codul de un numar specificat de ori
for ... in - executa cate un set de instructiuni pentru fiecare proprietate dintr-un obiect
while - repeta codul atata timp cat o anumita conditie este adevarata
do ... while - intai executa o data codul apoi il repeta atata timp cat o anumita conditie este adevarata
1. Instructiunea for

Aceasta are urmatoarea forma generala:

for (incepere_nr; conditie_nr; ciclu) {
    cod care va fi executat
}

- Unde "incepe_nr" e folosit la 'initializare' pentru a da o valoarea initiala numarului de repetari, de multe ori prin aceasta se declara o variabila care poate fi folosita ca un contor al ciclului.
"conditie_nr" verifica daca numarul de cicluri se incadreaza intr-o anumita valoare si daca rezultatul este TRUE se executa inca o data codul dintre acolade.
"ciclu incrementeaza sau decrementeaza valoarea la care a ajuns contoarul ciclului, apoi aceasta valoare este verificata din nou de "conditie_nr" pana cand rezultatul este FALSE.
Aceste trei expresii dintre parantezele rotunde sunt optionale, dar daca este omisa una din ele, caracterul punct si virgula ";" trebuie sa ramana pentru ca fiecare expresie sa ramana la locul ei.
In interiorul instructiunii for (ca si la instructiunea "if"), intre acolade, pot fi introduse si alte instructiuni "for", sau alte instructiuni conditionale, acest lucru se numeste imbricarea instructiunilor.
Iata un exemplu simplu de utilizare a instructiunii "for":
<script type="text/javascript">
<!--
for (x=1; x<5; x++) {
    document.write("<br /> x este "+x);
}
//-->
</script> - Se atribue lui 'x' valoarea 1, se verifica conditia (x<5) care este adevarata si se executa corpul instructiunii (dintre acolade, care afiseaza "x este 1) apoi se incrementeaza valoarea lui 'x' cu o unitate (x++), acum 'x are valoarea 2. Se verifica din nou conditia (x<5) si fiindca este adevarata, se executa iar corpul instructiunii apoi se incrementeaza valoarea lui 'x', ..., si tot asa pana cand 'x' va ajunge sa aibe valoarea 5 care la verificarea conditiei returneaza FALSE, moment in care se termina executia instructiunii "for".
Acest script va afisa urmatorul rezultat:
x este 1
x este 2
x este 3
x este 4
2. Instructiunea for ... in
Pentru utilizarea acestei instructiuni trebuie sa aveti cunostinte despre obiectele JavaScript asa ca va trebui sa reveniti asupra ei dupa ce le veti invata - in lectiile urmatoare .
Cu "for ... in" se executa cate un set de instructiuni pentru fiecare proprietate dintr-un obiect. Acest ciclul se poate executa cu orice obiect JavaScript, indiferent daca are sau nu proprietati. Pentru fiecare proprietate se executa cate o iteratie, daca obiectul nu are nici o proprietate nu se desfasoara nici un ciclu.
Instructiunea "for ... in" are urmatoarea forma generala:

for (nume_proprietate in obiect) {
    instructiuni
}
- Unde "nume_ proprietate" este un literal de tip sir generat de JavaScript. Pentru fiecare repetare a executiei instructiunii, lui "nume_proprietate" i-se atribuie urmatorul nume de proprietate continut in "obiect", pana cand sunt folosite toate.
3. Instructiunea while

Aceasta instructiune repeta un cod atata timp cat conditia este adevarata.

Comanda actioneaza similar cu instructiunea "for", dar nu include functiile de initializare si incrementare a variabilelor.
Instructiunea "while" are urmatoarea forma generala:

while (conditie) {
    codul care va fi executat
}

Iata exemplu anterior, de la instructiunea "for", aici este scris in varianta instructiunii "while":
<script type="text/javascript">
<!--
var x = 1;
while (x<5) {
    document.write("<br /> x este "+x);
    x++;
}
//-->
</script> - Prima data am declarat variabila 'x' dandu-i valoarea 1.
Instructiunea "while" verifica conditia (aici x<5) care este adevarata si permite executarea corpului functiei dintre acolade care afiseaza "x este 1" si incrementeaza valoarea lui 'x' cu o unitate. Acum 'x' are valoarea 2, se verifica conditia, care este adevarata si se executa iar codul dintre acolade, ..., si tot asa pana cand la verificarea conditiei rezultatul este FALSE, moment in care se termina rularea instructiunii "while".
Acest script va afisa urmatorul rezultat:
x este 1
x este 2
x este 3
x este 4
4. Instructiunea do ... while
Forma generala a acestei instructiuni este:

do {
    codul care va fi executat
    }
while (conditie)
Asemanatoare in mare parte cu instructiunea "while", instructiunea "do ... while" intai executa codul din corpul instructiunii, dupa care verifica conditia, apoi il repeta pana cant conditia returnbeaza FALSE. Astfel corpul functiei este executat cel putin o data, chiar daca conditia nu este adevarata.
Iata un exemplu din care puteti intelege mai bine aceasta instructiune:
<script type="text/javascript">
<!--
var x = 8;
do {
    document.write("<br /> x este "+x);
    x++;
    }
while (x<5)
//-->
</script> - Aceasta functie afiseaza "x este 8".
Observati ca desi conditia este falsa (x<5), codul dintre acolade este totusi executat o singura data.

JavaScript - Instructiuni conditionale (part5)

Instructiuni conditionale

Partea cea mai interesanta, dar si dificila, in scrierea unui script este proectarea acestuia astfel incat sa ia decizii in timp ce este executat.


Cu ajutorul instructiunilor conditionale putem face programele sa testeze diferite conditii dupa care sa decida modul de executie a datelor.
In Java Script sunt urmatoarele instructiuni conditionale:

if - executa comenzile dorite cand o conditie este adevarata.
if ... else - executa anumite comenzi cand o conditie este adevarata si alte comenzi cand aceasta este falsa.
switch - selecteaza care comanda va fi executata.
1. Instructiunea "if"
Se poate spune ca instructiunea "if" este una din cele mai des folosite.
Forma generala a acestei instructiuni este urmatoarea :

if (conditie) {
    codul care va fi executat daca este adevarata conditia
}
- Unde 'conditie' poate fi orice expresie logica.
Daca rezultatul conditiei este TRUE se executa codul dintre acolade, in caz contrar, cand conditia returneaza FALSE, se trece peste acest cod.
Iata un exemplu practic. Urmatorul script afiseaza "Buna ziua" daca ora este mai mare decat 11.
Se foloseste obiectul Date care determina data curenta (va fi explicat mai amanuntit in alta lectie).
<script type="text/javascript">
<!--
   // daca ora > 11,
   // va scrie în fereastra Buna ziua!
  var d = new Date()
  var time = d.getHours()
  if (time>11) {
    document.write("<b>Buna ziua!</b>")
  }
//-->
</script> - Am definit variabila 'd' a carei valoare este data curenta, apoi variabila 'time' preia numai ora din variabila 'd'. Conditia din instructiunea "if" verifica daca ora este mai mare decat 11 si in caz adevarat executa comanda dintre acolade, care afiseaza mesajul.
Daca ora este mai mica decat 11 scriptul nu va executa instructiunea dintre acolade.
2. Instructiunea "if ... else"
In exemplul anterior am vazut ca este afisat "Buna ziua!" daca ora > 11 iar in caz contrar nu se intampla nimic.
Folosind instructiunea "if ... else" putem stabili comenzi care sa fie executate cand conditia instructiunii "if" este FALSE.
Forma generala a instructiuni "if ... else" este urmatoarea :

if (conditie) {
    codul care va fi executat daca este adevarata conditia
}
else {
    codul care va fi executat daca conditia este falsa
}
- Unde 'conditie' poate fi orice expresie logica.
Daca rezultatul conditiei este TRUE se executa codul dintre primele acoladele, care apartin de "if", in caz contrar, cand conditia returneaza FALSE, sunt executate comenzile din a doua grupa de acolade (dupa else).
Iata din nou exemplul de mai sus, de asta data folosindu-se instructiunea "if ... else".
Scriptul afiseaza "Buna ziua!" daca ora este mai mare decat 11, in caz contrar afiseaza 'Este ora ...'.

<script type="text/javascript">
<!--
   // daca ora > 11,
   // va scrie în fereastra Buna ziua!
   // Alfel afiseaza "Este ora ..."
  var d = new Date()
  var time = d.getHours()
  if (time>11) {
    document.write("<b>Buna ziua!</b>")
  }
  else {
    document.write("<b>Este ora " +time+ "</b>")
  }
//-->
</script> - Am definit variabila 'd' a carei valoare este data curenta, apoi variabila 'time' preia ora din variabila 'd'. Conditia din instructiunea "if" verifica daca ora este mai mare decat 11 si in caz adevarat executa comanda dintre primele acolade.
Daca ora este mai mica decat 11 scriptul va executa comanda din grupul de acolade determinat de "else". (Observati folosirea operatorului de concatenare +).
3. Instructiunea switch
Aceasta instructiune e folosita pentru a compara o valoare cu altele dintr-o lista.
Sintaxa generala a instructiuni "switch" este urmatoarea.

switch (expresie) {
case valoare1:
    cod executat daca expresie = valoare1
    break
case valoare2:
    cod executat daca expresie = valoare2
    break
case valoare3:
    cod executat daca expresie = valoare3
    break
default :
    cod executat daca expresie e diferit de valoare1, valoare2 sau valoare3
}
- Prima data este evaluata expresia scrisa intre paranteze rotunde, apoi valoarea expresiei este comparata pe rand cu fiecare valoare determinata de "case". Daca se gaseste o identitate se executa codul asociat acelui "case". Apoi se iese din instructiunea "switch".
Daca, parcurgand fiecare "case", nu se gaseste o egalitate, se executa codul de dupa "default".
Prin folosirea lui "break" se opreste parcurgerea corpului instructiunii atunci cand s-a gasit o valoare egala cu 'expresie' si se iese din "switch".
Iata un exemplu de script care afiseaza un mesaj in functie de zilele saptamanii:
<script type="text/javascript">
<!--
  var d = new Date()
  var ziua = d.getDay()
switch (ziua) {
  case 5:

      document.write("Astazi e vineri");
      break
  case 6:
      document.write("Astazi e sambata");
      break
  case 0:
      document.write("Astazi e duminica");
      break
  default:
      document.write("Mai e pana sambata");
  }
//-->
</script> - Am definit variabila 'd' a carei valoare este data curenta, apoi variabila 'ziua' care preia numarul zilei din variabila 'd' (duminica = 0, luni = 1, ...). Se intra in corpul instructiunii "switch" si se verifica, pe rand, fiecare valoare "case" cu valoarea variabilei 'ziua', cand se gaseste egalitatea se executa comanda asociata acelui 'case' si se iese din "switch".
Daca nici una din valorile 'case' nu este egala cu valoarea variabilei 'ziua', se va executa comanda de dupa 'default', care afiseaza mesajul: "Mai e pana sambata".

Iata inca un exemplu cu "case", de data aceasta foloseste valori de tip sir (string).
<script type="text/javascript">
<!--
  var nume = "Marius";
switch (nume) {
  case "Cristi":
      document.write("Coleg");
      break
  case "Marius":
      document.write("Frate");
      break
  case "Maria":
      document.write("Sora");
      break
  default:
      document.write("Altcineva");
  }
//-->
</script> Va returna Frate.
Dar in general "case" e recomandat sa fie folosit cu valori numerice.