Expresii și operatori. Operatorii JavaScript Tag-uri Listă marcată

În primul rând despre expresiile din JavaScript.

Expresii JavaScript.

În JavaScript există instrucțiuni și expresii.

Instrucțiunile nu returnează valorile.

Expresii mereu Returnați anumite valori. Când interpritrul vede expresia, acesta calculează valoarea sa și înlocuiește expresia prin valoarea sa.

Expresiile sunt simple și compozite. Expresiile simple nu includ alte expresii.

Expresiile simple includ:

  1. Identificatori: Somevar (nume variabil);
  2. Literali: "șir" sau 675 (număr sau literal numeric);
  3. Unele cuvinte cheie, cum ar fi aceasta;

Când parserul detectează identificatorul, trebuie să fie calculat mai întâi, adică, de exemplu, înlocuiți numele variabilei prin valoarea acestuia.

Valoarea literală va fi la fel de scrisă în codul de script.

Operatori și expresii complexe JavaScript

Pentru a combina mai multe expresii simple într-un singur operatori complexi sunt utilizați.

Operatorii sunt:

  • Unar (un operand).
  • Binar (două operanzi).
  • Terner Operator? În JavaScript (trei operanzi, există doar un operator ternar).

Operandul este o expresie simplă la care se aplică operatorul.

De exemplu, operatorul de aditiv aritmetic "+" este un operator binar. Acesta rezumă operandul stâng și drept și returnează suma.

Var digit \u003d 4 + 7;

Apropo, cesiunea are loc cu operatorul de atribuire "\u003d". Acest operator calculează valoarea operandului drept și o atribuie operandului stâng.

JavaScript are un plus unar, are doar un singur operand. UNARY PLUS nu este un operator aritmetic, acesta convertește operandul la număr.

Var myvar \u003d "7"; Document.write (Tipul (Myvar) + "
"); // imprimate în documentul String Myvar \u003d + Myvar; document.write (TypeOf (Myvar) +"
"); // Imprimați numărul documentului

În primul rând, variabila Myvar conține șirul "7", acesta este un tip de linie literală (șir) și nu numeric (număr). Cu ajutorul operatorului, UnaRar Plus am transformat literalul șirului în numerică.

Operatii aritmetice

Operațiunile aritmetice sunt toate acțiunile matematice cunoscute.

Poate că operatorul% (echilibrul diviziei) are nevoie de explicații. 9 este împărțită în 5 cu reziduul 4, este acest echilibru care returnează acest operator. De asemenea, se numește luarea modulului. Când utilizați numere întregi, rezultatul funcționării acestui operator va fi, de asemenea, un număr întreg. Când operează cu numere de puncte plutitoare, rezultatul va fi un număr de punct plutitor.

5.5 % 2.2 = 1.1

În operațiunile aritmetice, trebuie amintit că cu o execuție incorectă, pot avea ca rezultat rezultate:

  • Nan (nu un număr) nu este un număr.
  • Infinity - Infinity.

Aceasta este ceea ce va conduce divizia la zero:

Var myvar \u003d 0/0; Document.write ("valoare variabilă:" + myvar + ", tipul său:" + TypeOf (Myvar) + "
");

Operațiuni de comparație

Operațiile de comparare sunt utilizate pentru a compara expresiile. Expresia cu operatorul condițional returnează o valoare booleană - adevărul sau fals (adevărat / fals).

Comparați operațiunile pot fi efectuate cu linii, acest lucru va fi discutat într-o altă lecție. Singura condiție a rezultatului corect este de a compara datele de același tip. În caz contrar, JavaScript va încerca să traducă datele de la un tip la altul, iar acest lucru nu este întotdeauna posibil. Pentru a evita erorile comparați doar un singur tip de date.

Operațiuni de atribuire

Cel mai evident exemplu al operațiunii de atribuire este o sarcină simplă (\u003d). Acest operator (\u003d) este utilizat pentru a atribui valoarea variabilei.

Dar există mai multe operații de atribuire care sunt abrevieri.

Operații logice

Operațiunile logice sunt adesea folosite cu altfel dacă proiectați în JS. Este pe exemplele acestui design, munca lor va fi demonstrată. Dar mai întâi lista operatorilor logici.

Acum exemple simple:

Dacă (TRUE && TRUE) document.write ("funcționează!
"); dacă (adevărat || fals) document.write (" funcționează!
"); dacă (! fals) document.write (" funcționează!
");

Vom analiza aceste exemple:

Operatorul logic și (&&) va returna adevărul dacă ambii operanzi sunt adevărul.

Declarația este logică sau (||) va returna adevărul dacă cel puțin un operand este adevărat.

Declarația nu este un logic (!) Ia un operand și schimbă valoarea adevărului / minciunilor contrariului.

Operatori unari

Operatorii unari sunt operatori cu un operand. Iată câțiva astfel de operatori:

  • ++ - Creșterea la 1 (increment). Poate fi prefix și postfix, despre el mai jos.
  • - - Reducerea la 1 (Decrement). Este posibil să existe un prefix și postfix, de mai jos.
  • + - UNARY PLUS.
  • - - minus unar.

Unitar minus.

Unar minus modifică semnul expresiei la contrariul. De exemplu, când scrieți în program -100, pur și simplu aplicați 100 de minus la literalul numeric.

Trebuie să înțelegeți exact cum funcționează minusul unar - acesta returnează valoarea operandului cu semnul opus. Iată un exemplu cum să utilizați minusul unar:

Var myvar \u003d -100; Document.Write (-Myvar + "- unitar minus a lucrat, dar variabila este, de asemenea, \u003d" + myvar + ".
"); Myvar \u003d -myvar; document.write (" Acum variabila \u003d "+ myvar +".
");

Dăm un exemplu indispensabil de un minus dublu unar. Cred că în scopuri educaționale va fi utilă:

Var myvar \u003d -100; Document.Write (- Myvar + "este o creștere, și nu un minus unitar dublu.
"); document.write (" Acum variabila \u003d "+ myvar +".
"); Document.write (- (- myvar) +" și aceasta este o dublă aplicare a unui minus unar.
");

Unar plus.

Unar plus nu face acțiuni matematice. El conduce un tip literal la numeric.

Var myvar \u003d "78687"; Document.write (TypeOf (Myvar) +.
"); myvar \u003d + myvar; document.write (TypeOf (Myvar) +.
");

Creșterea și descurajarea

În programare, este adesea necesară creșterea sau reducerea valorii variabilei pe unitate. Pentru aceasta există operatori unari:

  • ++ - Creșterea la 1 (increment).
  • - - Reducerea la 1 (Decrement).

Spre deosebire de unuar plus și minus, creșterea și decretele modifică valoarea variabilei la apelarea.

Var myvar \u003d 10; Document.write (++ myvar +.
"); Document.write (myvar +.
");

Decrement (-) este valabil în mod similar.

Încurajați acum prefixul și utilizarea postfixă a acestor operatori.

  • ++ Myvar - Prefixul crește cu 1.
  • myvar ++ - Postfix crește cu 1.

Diferența este:

  • Utilizarea prefixului acestor operatori calculează mai întâi valoarea operatorului unar, și apoi utilizează rezultatul exprimării.
  • Utilizarea postfixă calculează mai întâi expresia și apoi efectuează un operator unar (++ sau -).

Acest lucru vă va ajuta să înțelegeți un exemplu simplu:

Var myvar \u003d 10; Document.write ((++ myvar + 5) + ".

"); var myvar \u003d 10; document.write ((myvar ++ + 5) +".
"); Document.write (" variabil \u003d "+ myvar +".
");

Creșterea și decretul este permisă numai pentru a fi utilizate cu variabile, este imposibil să le aplicați la literale literale numerice. Pur și simplu puneți codul ++ 7 DAS Eroare în script.

Alți operatori

În JavaScript există și alți operatori:

  • Ternerary (cu trei operanzi) Operator

var a \u003d 10; Var b \u003d (a\u003e 1)? 100: 200; Alertă (b);

Dacă starea a\u003e 1. Adevărat, apoi variabil b. Atribuiți o valoare 100 În caz contrar, variabila B atribuie valoarea 200 .

JS 3_4 Sarcina. Pentru a completa codul: 3 variabile locale sunt anunțate utilizând cuvântul cheie VAR. Este necesar să se atribuie valoarea următoarei instrucțiuni ternare în variabila MAX: dacă A este mai mare decât B, apoi returnați A, altfel ne întoarcem b.
Fragment de cod:

dacă (a * b< 6) { result = "Мало"; } else { result = "Много"; }


Întrebări pentru auto-control:

  1. Care este sintaxa operatorului ternar?
  2. Câte argumente au un operator ternar?

Operatorul de comutare în JavaScript - comutator

Operatorul JavaScript al comutatorului servește pentru a verifica variabila la o varietate de valori:

Sintaxă:

comutator (variabilă sau expresie) (opțiunea de caz1: //..block operatori .. pauză opțiune2: //..block operatori .. pauză implicit: //..block operatori ..)

Valoarea unei variabile sau a unei expresii este verificată: în fiecare caz Una dintre valori este verificată, în cazul unei valori adecvate, unul sau alt bloc de operatori care corespund acestora caz.

Un bloc care începe cu cuvântul de serviciu implicit poate fi omis. Operatorii bloc se vor efectua dacă niciuna dintre valorile enumerate în toate caz Nu sunt adecvate.

Important: Operatorul de pauză este necesar după fiecare valoare variabilă considerată (după fiecare caz); Dacă nu o utilizați, atunci vor fi afișate toți operatorii de mai jos.

Comparați cu operatorul Dacă.:

var a \u003d 2; Comutator (a) (Cazul 0: // dacă (A \u003d\u003d\u003d 0) Cazul 1: // dacă (A \u003d\u003d\u003d 0) ("zero sau un"); // Apoi luăm ... Break; Cazul 2: // dacă (A \u003d\u003d\u003d 2) ("două"); // Apoi luăm ... pauză; implicit: // altfel alertă ("multe"); // altfel luăm ... )

Cum de a grupa mai multe opțiuni?

Pentru a îndeplini aceiași operatori, o grupare de mai multe caz. Ca și în exemplul de mai sus:

Cazul 0: Cazul 1: Alertă ("zero sau una"); Pauză; ...

La A \u003d 0 și A \u003d 1, același operator este efectuat: Alertă ("zero sau una");

Exemplul 4: Trimiteți de la utilizator să introducă culoarea. Afișați traducerea în limba engleză. Pentru culoare "albastru" și "albastru" Trimiteți aceeași valoare.


✍ Soluție:
  • Creați o pagină web cu un schelet HTML și o etichetă script..
  • Inițializați variabila culoare
  • Var Color \u003d Prompt ("Ce culoare?");

    var Color \u003d Prompt ("Ce culoare?");

  • Verificați valoarea variabilei utilizând designul switsh.Prin afișarea fiecărei valori - traducerea corespunzătoare:
  • comutator (culoare) (carcasă "roșu": Alertă ("roșu"); Break; Cas "verde": Alertă ("verde"); Break; // ...

    Dacă variabila culoareare sensul "roșu", apoi transferați traducerea în fereastra modală - "roșu" și ieșiți din design (pauză;). Dacă variabila culoare Are semnificația "verde", pentru a afișa în fereastra modală - "verde" și ieși din design (pauză;).

  • Pentru flori "albastru" și "albastru" Efectuați o grupare:
  • // ... caz "albastru": caz "albastru": Alertă ("albastru"); Pauză; // ...

    Dacă variabila culoareare sensul "albastru" sau variabil culoareare sensul "albastru", apoi afișați traducerea în fereastra modală - "albastru" și ieșiți din design (pauză;).

  • Organizați ieșirea pentru acele culori care nu sunt furnizate de program:
  • // ... implicit: Alertă ( "Nu avem informații despre această culoare")) // capătul comutatorului

    // ... implicit: Alertă ("Y Nu avem informații despre această culoare")) // Sfârșitul comutatorului

  • Script de testare în browser.

JS 3_6 Sarcina. Găsiți și corectați erorile din următorul fragment de cod:

14 15 16 17 Var Număr \u003d Prompt ( "Introduceți numărul 1 sau 2:"); Comutator (caz "1" (document.write (unul ");); rupere; caz" 2 "(document.write (" două ");); ruperea; implicit (document.write (Document.Write "Ați introdus o valoare diferită de 1 și 2") ; } ; }

var Număr \u003d Prompt ("Introduceți numărul 1 sau 2:"); Comutator (carcasa "1" (document.write (unul ");); rupere; caz" 2 "(document.write (" două ");); ruperea; implicit (document.write (" "ați introdus o valoare diferită de 1 și 2 "););););););););););););););););););););););););


JS 3_7 Sarcina. Ce va fi afișat pe ecran atunci când efectuați următorul cod?:

1 2 3 4 5 6 7 8 9 10 11 12 13 Var valoare \u003d "2"; Comutator (valoare) (caz "1": Cauza "2": Cauza "3": document.write ("salut"); pauză; caz "4": Cauza "5": document.write ("lume"); Implicit: document.write ("eroare");)

var valoare \u003d "2"; Comutator (valoare) (caz "1": Cauza "2": Cauza "3": document.write ("salut"); pauză; caz "4": Cauza "5": document.write ("lume"); Implicit: document.write ("eroare");)


JS 3_8 Sarcina. Utilizatorul solicită numărul - numărul de corb de pe ramură. În funcție de numărul introdus (nu mai mult de 10), ieșiți mesajul: - se află pe ramură 1 cioară. - se află pe ramură 4 croși - se află pe ramură 10 Roron.

  1. În funcție de numărul introdus, sfârșitul cuvântului se schimbă "cioară".
  2. Pentru a verifica utilizarea operatorului de comutare JavaScript.
  3. Salvați această pagină în dosarul Rezultate (este util pentru lucrări ulterioare).


Întrebări pentru auto-control:

  1. Caz în care este recomandabil ca operator condiționat să folosească designul intrerupator?
  2. Care este blocul implicit din operator intrerupator?
  3. Este necesar să utilizați operatorul de pauză în design intrerupator?
  4. Cum se efectuează gruparea pentru mai multe opțiuni pentru valorile operatorului intrerupator?

Operatorii ciclici ai limbajului JavaScript - pentru

Sintaxă:

pentru (valoarea inițială a contorului; condiție; incrementul contorului) (//..block operatori ..)

Important: Ciclul din JavaScript pentru este utilizat atunci când este cunoscut în avans câte ori ar trebui să se repete acțiunile ciclice (câte iterații la ciclu)

  • Ca o valoare inițială a contorului de iterație, se utilizează o expresie de atribuire: de exemplu, i \u003d 0 - Contorul ciclului începe de la zero:
  • pentru (var i \u003d 0; condiție; incrementarea contorului) (//..block operatori ..)

  • Ca o creștere a contorului, etapa este indicată cu care trebuie să crească contorul: de exemplu, indică faptul că fiecare iteratare a ciclului va fi însoțită de o creștere a 1 :
  • pentru (var i \u003d 0; condiție; i ++) (//..block operatori ..)

  • Condiția ciclului este valoarea finală a contorului: de exemplu, I10, oprește ciclul:
  • pentru (var i \u003d 0; i<10; i++) { //..блок операторов.. }

Luați în considerare un exemplu de utilizare a ciclului în JavaScript:

Exemplul 5: Afișați secvența de numere 0 1 2 3 ... 9 , fiecare cifră - de la o nouă linie. 0 1 2 ... 8 9


✍ Soluție:
  • Pentru a afișa secvența de numere, vom folosi contorul de ciclism, care trebuie să-și schimbe valoarea de la 0 inainte de 9 Conform secvenței.
  • Prin urmare valoarea inițială a contorului ciclului Setați valoarea egală cu 0 ; la fel de condiții de ciclu Setați valoarea finală - II \u003d 9; Contorul pas trebuie să fie egal 1 (I ++), deoarece diferența dintre membrii secvenței este una:
  • pentru (var i \u003d 0; i<10; i++) { document.write(i+"
    "); }

    În exemplu, valorile contorului ciclului sunt afișate pe ecran, deoarece creșterea contorului I ++, respectiv, va apărea pe ecran 0 1 2 3 ... 9 , și fiecare cifră - de la o linie nouă (etichetă
    ).

  • Script de testare în browser.

JS 3_9 Sarcina. 1 inainte de 15 .

  1. Ca o secvență de numere, utilizați contorul ciclului pentru.
  2. Pentru un adder variabil, utilizați identificatorul variabil sUMĂ..

Fragment de cod:

Pentru (var i \u003d ...; ... ...) (Sum \u003d Sum +;) ...

Operatori de ieșire a ciclului pauză și continua. în JavaScript. Operator IEȘIRE

Operatorul de pauză întrerupe întregul corp al ciclului, adică. Ieșiți la ciclu la JavaScript.

În timp ce operatorul continuu întrerupe execuția iterației actuale a ciclului, dar continuând executarea ciclului de la următoarea iterație.

Luați în considerare lucrarea de pauză și continuați operatorii de exemplu:

Exemplu: Oblect algoritmul fragmentului de cod. Ce va fi derivat?

Fragment de cod:

1 2 3 4 5 6 pentru (var i \u003d 0; i< 10 ; i++ ) { if (i== 4 ) continue ; document.write (i+ "
"); dacă (i \u003d\u003d 8) pauză;)

pentru (var i \u003d 0; i<10;i++) { if (i==4) continue; document.write(i+"
"); dacă (i \u003d\u003d 8) pauză;)


✍ Soluție:
  • În a treia linie a exemplului există o afecțiune din cauza cifrei 4 Nu va afișa: operator continua.treceți la următoarea iterație a ciclului fără a finaliza cea curentă.
  • În linia numărul 5 ieșiți din ciclu, dar în același timp cifra 8 Acesta va fi afișat, deoarece instrucțiunea de ieșire este de până la starea (în linia 4). Întâlnire pauzăInterpretul va completa funcționarea ciclului.
  • Asa de Pe ecran va fi: 0 1 2 3 5 6 7 8 - Fiecare cifră dintr-o nouă linie.

JS 3_10. Retrage suma tuturor numerelor întregi de la 1 inainte de 15 , eliminând din numărul total de numere 5 și 7 .

Operator de ieșire

Limba JavaSctIpT oferă un operator de ieșire din codul programului - declarația de ieșire.
Cel mai adesea, operatorul este utilizat pentru a exclude eroarea de intrare a utilizatorului.


Luați în considerare un exemplu:

Exemplul 6: Solicitați utilizatorul Introduceți un număr. Dacă nu este introdus numărul, afișați un mesaj. "Numărul este necesar!" și opriți activitatea programului.


✍ Soluție:
  • Inițializați variabila număr Valoarea introdusă de utilizator în fereastra modală:
  • var Număr \u003d Prompt ("Introduceți numărul");

  • Folosind funcția de parsint a conversiei rândului la un număr întreg, verificați dacă valoarea introdusă este numărul:
  • numărul \u003d parsint (număr); // retur nan - nu numărul

    În cazul în care nu este introdus niciun număr, funcția va returna valoarea NAN (de la limba engleză. nu un număr. - nu numărul).

  • Verificați valoarea variabilei număr Folosind funcția isnan:
  • x \u003d isnan (număr); // întoarceți-vă adevărat dacă valoarea nu este numerică

    Funcția isnan returnează valoarea adevărat. În cazul în care variabila nu este un număr

  • De regulile "minciuna" Organizați verificarea valorii variabile X.. Dacă valoarea nu este numerică, comentariul corespunzător și completați programul:
  • dacă (x) (Alert ("Număr!"); Ieșire; // ieși din program)

  • Pentru a continua programul (dacă valoarea introdusă a fost numărul), ieșiți următoarea fereastră cu o alimentare de intrare:
  • alertă ("introduceți al doilea număr"); // Când introduceți, operatorul nu este executat

  • Script de testare în browser.

Întrebări pentru auto-control:

  1. Listează trei parametri de ciclu pentru Și să-și explice scopul.
  2. Ce operatori sunt concepuți pentru a ieși din ciclu și pentru întreruperea sa? Dați exemple de utilizare a acestora.
  3. Pentru care operatorul este destinat iEȘIRE?

Există câțiva metri în unul?

O lucrare interesantă cu un ciclu este posibilă atunci când este utilizată În același timp, două contoare în ciclu.
Luați în considerare un exemplu:

Exemplul 7: Folosind scriptul, imprimați următoarele perechi variabile la trei linii: i \u003d 0 j \u003d 2 i \u003d 1 j \u003d 3 i \u003d 2 J \u003d 4


✍ Soluție:
  • În ciclu, organizați două metri: contra I pentru secvență 0 1 2 , Meter J pentru ieșirea secvenței 2 3 4 :
  • 1 2 3 pentru (i \u003d 0, j \u003d 2; eu< 10 , j< 5 ; i++, j++ ) { }

    pentru (i \u003d 0, j \u003d 2; i<10, j<5; i++, j++) { }

    Fiecare dintre cei trei parametri ai ciclului are acum două valori care sunt enumerate. prin virgule (de exemplu, primul parametru cu două valori: I \u003d 0, J \u003d 2). Parametrii înșiși sunt enumerați printr-o virgulă(;).

  • Pentru a ieși din fiecare linie, utilizați eticheta
    :
  • 1 2 3 4 pentru (i \u003d 0, j \u003d 2; eu< 10 , j< 5 ; i++, j++ ) { document.write ("
    i \u003d ", I," J \u003d ", J);)

    pentru (i \u003d 0, j \u003d 2; i<10, j<5; i++, j++) { document.write("
    i \u003d ", I," J \u003d ", J);)

Pagina de generare "În zbor": Cum este?

Înainte de a efectua următoarea sarcină, luați în considerare un exemplu. clădirea dinamică a paginii HTML Cu JavaScript.

Exemplul 8:

  • Trebuie să generați dinamic listele marcate și numerotate pe pagina web în funcție de datele introduse de utilizator: Cerere de la utilizator să intre vizualizarea listei (numerotate (cifră 1) sau marcată (cifră 2)) și apoi numărul elementelor de listă.
  • În funcție de răspuns, afișați etichete sau o listă marcată sau numerotată cu numărul necesar de articole.
  • Dacă este introdus un tip de listă inexistentă, emiteți un mesaj "Introduceți tipul corect!" și ieșiți dintr-un program ().

Recuperarea etichetelor:
listă numerizată Etichete:

<oL\u003e <li\u003e <li\u003e <li\u003e </ ol\u003e

listă marcată Etichete:

var Listtype \u003d Prompt ("Introduceți" 1 "- dacă lista marcată," 2 "- dacă lista numerotată");

  • Verificați valoarea introdusă: pentru o listă numerotată (cifră 1) Afișați eticheta
      , pentru etichetate (cifră 2) - etichetă
        . Dacă este introdusă o altă valoare, ieșiți remarca și terminați programul:

            ") Altceva (alertă (" introduceți tipul corect "); Ieșire;)

          • Inițializați variabila kolvo. Valoarea introdusă de utilizator în fereastra modală:
          • var Kolvo \u003d Prompt ("Introduceți numărul de articole");

          • Pentru a converti valoarea șirului la utilizarea numerică Funcția de parsot:
          • pentru (var i \u003d 1; i<=kolvo; i++) document.write("");

          • Deoarece listele sunt închise cu etichete corespunzătoare, în funcție de lista listei, ieșiți etichetele de închidere:
          • Dacă (listtype \u003d\u003d "1") document.write ("") Altfel dacă (listtype \u003d\u003d" 2 ") document.write ("" ) ;

            dacă (listtype \u003d\u003d "1") document.write ("

        ") Altfel dacă (listtype \u003d\u003d" 2 ") document.write ("
      ");

    1. Script de testare în browser.
    2. JS 3_11 Sarcina.
      Scrieți un script care afișează etichete intrare(controale) de diferite tipuri, în funcție de cifrele introduse:

      1 - câmpul de text,
      2 - buton,
      3 - radio.(intrerupator).

      De asemenea, trebuie solicitat numărul de etichete derivate.

      Recuperarea etichetelor:

      Pentru 1 - câmp de text: Pentru 2 butoane: Pentru 3 - Radio:

      Un exemplu de ieșire:

      JS 3_12 Sarcina. Desenați o placă de șah 9x9 utilizând JavaScript pentru cicluri. Placa "Draw" urmează etichetele HTML pentru o masă:

      Recuperarea etichetelor:

      <frontiera de masă \u003d "1" lățime \u003d "30%"\u003e <tR\u003e <tD\u003e-</ TD\u003e -</ TD\u003e </ tr\u003e </ Tabel\u003e

      --

      • Pentru a desena 9 linii, este necesar să se organizeze un ciclu extern cu un contor I.
      • Pentru a desena 9 celule în fiecare linie, este necesar să se organizeze un ciclu intern (încorporat) cu un j.
      • Pentru a desena etichetele de celule și șiruri de caractere, utilizați metoda document.write.

      Rezultat:

      În plus:

      1. În celulele tabelului, afișați tabelul de multiplicare utilizând contoarele ciclului (I și J).
      2. Primul rând și prima coloană pentru a se retrage cu fundalul roșu (atributul celulelor tabelului Bgcolor):
        <td bgcolor \u003d "roșu"\u003e-</ TD\u003e

        -

      Rezultat:


      Întrebări pentru auto-control:

      1. Explicați ce înseamnă conceptul de "clădire dinamică a paginii"?
      2. Ce design de limbă este utilizat cel mai des la construirea unei pagini?

      JavaScript ciclic - în timp ce operatorii de limbă

      Sintaxă operatorului de carne:

      În timp ce (condiția) (//..block operatori ..);

      Exemplu: Eliminarea la caseta de dialog 1000 (2, 4, 8 ... 512). Utilizați metoda Alert ()


      ✍ Soluție:
      • Listing Script:
      • 1 2 3 4 5 var a \u003d 1; In timp ce.< 1000 ) { a*= 2 ; alert(a) ; }

        var a \u003d 1; In timp ce.< 1000){ a*=2; alert(a); }

        a * \u003d 2 → Se utilizează o operație de atribuire compozită: un produs combinat cu atribuirea, adică la fel ca A \u003d A * 2

      • Testați rezultatul în browser.

      Cum se rupe și continuați operatorii să lucreze în timpul ciclului?

      Exemplu:

      var a \u003d 1; In timp ce.< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; }

      var a \u003d 1; In timp ce.< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }

      Decendul de grade vor fi emise la 128 inclusiv și valoare 64 va fi uitat. Acestea. În casetele de dialog, vom vedea: 2 4 8 16 32 128

      JS 3_13 Sarcina. Ce valori vor fi următorul fragment de cod?

      vAR Counter \u003d 5; În timp ce (contor< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }


      JS 3_14 Sarcina. Scrieți codul de construcție h. în grad y.Folosind ciclul de timp. Solicitați valorile variabilelor și ieșirea rezultatului utilizând alertă ().

      Cod complet:

      1 2 3 4 5 6 7 8 9 var x \u003d ...; var y \u003d ... Counter \u003d 1; chislo \u003d x; În timp ce (...) (CHISLO \u003d X * ...; contra \u003d ...) Alertă (CHISLO);

      var x \u003d ...; var y \u003d ... Counter \u003d 1; chislo \u003d x; În timp ce (...) (CHISLO \u003d X * ...; contra \u003d ...) Alertă (CHISLO);

      A Corectați eroarea din programul conceput pentru a găsi numărul numărului:

      1 2 3 4 5 6 7 8 9 10 11 12 13 VAR Counter \u003d Prompt ("Introduceți numărul"); var factorial \u003d 1; Document.write ( "Numere factoriale:" + Counter + "! \u003d"); Faceți (dacă (Counter \u003d\u003d 0) (Factorial \u003d 1, Break;) Factorial \u003d Factorial / Contor; Counter \u003d Counter + 1;) în timp ce (Counter\u003e 0); Document.write (factorial);

      vAR Counter \u003d Prompt ("Introduceți numărul"); var factorial \u003d 1; Document.write ("numere factoriale:" + contra + "! \u003d"); Faceți (dacă (Counter \u003d\u003d 0) (Factorial \u003d 1, Break;) Factorial \u003d Factorial / Contor; Counter \u003d Counter + 1;) în timp ce (Counter\u003e 0); Document.write (factorial);


      JS 3_16 Sarcina. Modificați programul despre introducerea numelui de utilizator:

      Solicitați numele utilizatorului până când utilizatorul intră într-adevăr numele (adică, câmpul va fi într-adevăr umplut și cheia de anulare nu poate fi apăsată). Când este introdus numele, apoi ieșiți "Bună, nume!". Document.

      Cum se caută erori în JavaScript?

      În unele cazuri, codul de pe pagină nu funcționează în incomprehensibil din ce motiv. Unde să caute o greșeală? În astfel de cazuri, puteți aplica declarația de încercare ..catch.

      Operatorul de încercare .. Catch încearcă să efectueze un fragment de cod, iar dacă există o eroare în cod, atunci este posibilă indicarea unei erori pe ecran.
      Eroarea este stocată în obiectul E.Message.

      Luați în considerare activitatea operatorului folosind exemplul:

      Exemplu: Scrieți un operator de eroare în program. Verificați prezența unei erori în codul eronat asumat: dacă este prezentă eroarea din cod - eliberați un mesaj "Prelucrarea erorilor: nume de eroare". După verificarea operatorului eronat, indiferent dacă există o eroare în cod, emiteți un mesaj "Acțiuni de finisare"


      ✍ Soluție:
      • Ca mesaj cu o eroare, folosim metoda Prompt (), scrisă cu o eroare - promt (). Mesaj de eroare Încorporați în unitatea de încercare:
      • alertă ("la"); Încercați (Promt (introduceți numărul "); // operator cu o eroare)

        Încercați cu engleza. - "Încercarea", am pus operatorul de încercare în fața fragmentului de cod, care, probabil, conține o eroare (în cazul nostru, există într-adevăr o greșeală).

      • Un mesaj de notificare de eroare trebuie plasat în blocul de captură:
      • 6 7 8 9 Captura (e) (alertă ( "Prelucrarea erorilor:"+ E.message); )

        captura (E) (Alert ("Prelucrarea erorilor:" + E.Message);)

        Dacă eroarea este într-adevăr acolo, atunci declarația de captură (din engleză. Captură ") salvează această eroare în obiectul E. În viitor, acesta poate fi afișat în caseta de dialog E.Message.

      • Mesajul final care trebuie să fie emis, indiferent dacă eroarea este în cod, puneți-o în blocul în cele din urmă:
      • În cele din urmă (alertă ("acțiuni finală");) Alertă ("după");

        Dacă există încă o eroare, atunci interpretul după ieșirea sa în exemplul nostru va merge la execuția blocului de captură și apoi în cele din urmă (de la "finalizarea" engleză "," în cele din urmă "), care va fi întotdeauna finalizată, indiferent de dacă eroarea a fost sau nu. Chiar dacă apare o eroare în blocul de captură.

      Important: În cele din urmă blocarea în design este opțională.


      JS 3_17 Sarcina. Efectuați un exemplu descris mai sus cu următoarele modificări:

    3. Îndepărtați blocul în cele din urmă și urmați executarea codului.
    4. Puneți în loc de un operator eronat inconfundabil și vedeți ce rezultatul va fi.
    5. Rezumat:

      Lecția a descris următoarele operatori de limbă JavaScript:

      Operatori condiționați JavaScript:

    6. Dacă operatorul
    7. Cesiune condiționată (operator ternar)
    8. Operatorul comutatorului de comutare
    9. Operatori de ciclism:

    10. Ciclu pentru
    11. În timp ce ciclul
    12. Ciclu ... în timp ce
    13. Ciclu pentru ... în
    14. Sarcina finală JS 3_18.
      Creați un joc pentru două:

      1. Programul solicită primul jucător să introducă un număr de la 1 inainte de 100 (Al doilea jucător nu vede numărul introdus). Cel de-al doilea jucător solicită apoi să ghicească numărul introdus. Un mesaj este afișat ca răspuns. "Puțini" sau "lot" În funcție de răspunsul introdus. Dacă un jucător ghicit, este afișat o felicitare. Dacă nu ghiciți - jocul continuă (până când numărul este ghicit).
      2. Calculați numărul de încercări și dați rezultatul atunci când numărul este rezolvat.


      Întrebări pentru auto-control:

      1. În ce cazuri este recomandabil să utilizați ciclul în ciclu? Denumiți un exemplu de utilizare a acesteia.
      2. Care este scopul acestei declarații de încercare ..catch?
      3. Explicați atribuirea fiecărui bloc de operator de încercare.
      Cuprins

      JavaScript acceptă un set compact de operatori care pot fi utilizați pentru a crea pagini web interactive. Acest capitol oferă o imagine de ansamblu asupra acestor operatori.

      Acest capitol are următoarele secțiuni care oferă o scurtă trecere în revistă a fiecărui operator:

      • Operatori bloc: { }
      • Operatori condiționați: dacă ... altfel și intrerupator
      • Operatori de ciclism: pentru că, în timp ce ... în timp ce, etichetați, rupeți și continuați (eticheta De la sine nu este un operator de ciclism, dar adesea folosit cu operatorii specificați)
      • Operatori de manipulare cu obiecte: pentru ... In. și cu.
      • Comentarii
      • Operatori de manipulare a excepțiilor: Încearcă să prinzi și arunca
      Orice expresie este, de asemenea, un operator. A se vedea capitolul 3 din secțiunea "Expresii și operațiuni" informații complete despre operațiuni.

      Utilizați simbolul punctului de comutare () pentru a separa operatorii din codul JavaScript.

      Vedeți cartea de bază JavaScript. Directory. Detalii despre operatorii din acest capitol.

      1. Blocul operatorilor

      Unitatea de operare este utilizată pentru operatorii de grup. Blocul este limitat la paranteze figurate:

      (Declarație1 Declarație2 ... Decursuri)

      2. Operatori condiționați

      Operatorul condițional este un set de comenzi care sunt executate dacă starea specificată - adevărat.. JavaScript suportă doi operatori condiționați: dacă ... altfel și intrerupator.

      2.1. Dacă ... altfel operator

      Acest operator este utilizat pentru a efectua anumiți operatori dacă este o condiție logică adevărat.; Utilizați un bloc opțional altfel. Pentru a efectua alți operatori în cazul în care condiția fals. Operatorul dacă arată așa:

      dacă (condiție) [altceva (state2)]

      Condiția poate fi o expresie JavaScript calculată în adevărat. sau fals. Operatorii efectuați pot fi orice operatori JavaScript, inclusiv operatori imbricați dacă. Dacă trebuie să efectuați mai mult de un operator după operatori dacă sau altfel.Trebuie să încheiați acești operatori efectuați în paranteze Curly ().

      Nu trebuie să utilizați sarcini simple în operatorul condițional. De exemplu, nu utilizați acest cod:

      Dacă trebuie să utilizați atribuirea în operatorul condițional, introduceți paranteze suplimentare în jurul operațiunii de atribuire. De exemplu, dacă ((x \u003d y)).

      Nu confunda primitiv Boolean.-Noţiune adevărat. și fals Cu valori adevărat. și fals Obiect Boolean.. Orice obiect a cărui valoare nu este nedefinit., nUL, zero., ** nan ** sau șir gol, inclusiv un obiect Boolean. cu semnificație fals, calculată în adevărat.Când este transmis operatorului condițional. De exemplu:

      var b \u003d nou boolean (fals); dacă (b) // această condiție se calculează într-adevăr

      Exemplu.

      În acest exemplu, funcția checkData. Se intoarce adevărat.Dacă numărul de caractere din TEXT.- ack egală cu trei; În caz contrar, afișează un avertisment și returnări fals.

      funcția de verificare () (dacă (document. Form1. Threechar. Valoare. Lungime \u003d\u003d 3) (Return true) altceva (Alert (" Introduceți exact trei charagrame."+ Document. Form1. Trivechar. Valoare +" nu este validă. ") Return fals))

      2.2. Schimbați operatorul

      Operator intrerupator Permite programului să calculeze expresia și să încerce să compare valoarea valorii de expresie din marcajul casei. Dacă se constată coincidența, programul efectuează un operator asociat. Operator intrerupator Se pare că:

      comutator (expresie) (etichetă de caz: declarație; rupere; etichetă caz: declarație; rupere; ... implicit: declarație;)

      Programul caută mai întâi etichetacoincide expresieȘi apoi efectuează o declarație / operator asociat. Dacă coincidența eticheta nu a fost găsit, programul caută opțional mod implicit. afirmație/ Declarația implicită și dacă se găsește, efectuează un operator asociat. În cazul în care un mod implicit. afirmație nu a fost găsit, programul continuă să efectueze operatorul după încheierea operatorului intrerupator.

      Operatorul opțional pauzăStadializare caz eticheta, asigură că programul va întrerupe executarea operatorului intrerupatorDe îndată ce coincidența găsită este executată și va continua să execute de la operator după operator intrerupator. În cazul în care un pauză absent, programul continuă să efectueze următorul operator în interiorul operatorului intrerupator.

      Exemplu.

      Aici, dacă expr. Se calculează în "banane", programul găsește o coincidență cu cazul "banane" și efectuează un operator asociat. Dacă se detectează pauza, programul întrerupe intrerupator și execută operatorul după blocul operatorului intrerupator. În cazul în care un pauză absent, operator în caz "Cirese" vor fi, de asemenea, executate.

      comutator (Expr) (Cazul "portocale": document. Scrieți (" Portocalele sunt de 0,59 dolari pe o lire.
      "); Sparge; caz" mere ": document. Scrieți (" Merele sunt de 0,32 dolari pe o lire.
      "); Pauză; caz" banane ": document. Scrieți (" Bananele sunt de 0,48 dolari o lire.
      "); Pauză; caz" cireșe ": document. Scrieți (" Ciresele sunt de 3,00 dolari o lire.
      "); Ruperea; implicit: document. Scrieți (" Ne pare rău, suntem în afara "+ I +".
      ");) Document. Scrieți (" Mai este ceva ce-ți place?
      " ) ;

      3. Operatorii de ciclism

      Ciclu/ buclă. Acesta este un set de operatori, care este executat de mai multe ori, în timp ce starea specificată. JavaScript acceptă operatorii ciclici pentru, face în timp ce și in timp ce, precum și eticheta (eticheta În sine nu este un operator de ciclism, dar adesea folosit cu operatorii specificați). În plus, puteți utiliza operatorii pauză și continua. În interiorul operatorilor de cicluri.

      Un alt operator de ciclism, pentru ... In.Își îndeplinește, de asemenea, operatorii săi ciclic, dar folosit pentru a lucra cu obiecte. Consultați operatorii operatori de manipulare.

      3.1. Operator pentru

      Ciclu pentru repetată atâta timp cât valoarea specificată fals. Ciclul JavaScript. pentru Arata ca ciclurile pentru Java și C. Operator pentru Se pare că:

      pentru ([inițializare]; [condiție]; [incrementarexpression]) (state)

      Când ciclul pentru Efectuate, se întâmplă următoarele:

      1. Inițializarea expresiei inițialaxpressiondacă este disponibil. Această expresie inițializează, de obicei, una sau mai multe contoare de cicluri, iar sintaxa permite expresiile oricărei complexități. Această expresie poate declara, de asemenea, variabile.


      2. Se calculează expresia condiționată / condiționată. Dacă valoarea condiție - Adevărat.Declarații / operatorii de cicluri sunt executați. Dacă valoarea condiție - falsă, ciclu pentru oprește munca. Dacă expresia condiție. Complet absent, se presupune că condiție - Adevărat.


      3. Efectuați declarații.


      4. Actualizarea expresiei incrementare.Dacă este disponibil, executat și controlul revine la pasul 2.


      Exemplu.

      Această caracteristică conține un operator pentrucare numără numărul de opțiuni selectate în lista derulantă (obiect SELECTAȚIpermițându-vă să alegeți mai multe poziții). Operator pentru Anunță o variabilă i. Și îl inițiează la zero. Verifică mai puțin i. Opțiuni de obiect SELECTAȚI, execută operatorul dacă Și creșterea variabilei i. pe unitate după fiecare pasaj al ciclului.

      Alegeți câteva tipuri de muzică, apoi faceți clic pe butonul de mai jos:

      "Alertă (" Număr de opțiuni selectate: "Howmany (document.selectform.musictypes)))">

      3.2. Operatorul face ... în timp ce

      Operator face în timp ce repetate în timp ce expresia specificată - fals. Operator face în timp ce Se pare că:

      face (declarație) în timp ce (condiție)

      afirmație Efectuate o dată înainte de a verifica starea / starea. În cazul în care un condiție - Adevărat.Operatorul este executat din nou. La sfârșitul fiecărei execuții condiție. Verificat. În cazul în care un condiție - falsăExecuția se oprește și controlul este transmis operatorului după face în timp ce.

      Exemplu.

      În acest ciclu de exemplu do. Element cel puțin o dată și repetă iterațiile în timp ce i. Mai puțin 5 .

      (I + \u003d 1; documentul. Scrieți (i)) în timp ce (i< 5 ) ;

      3.3. Operatorul de roți

      Operator in timp ce își îndeplinește operatorii în timp ce starea / starea specificată - adevărat.. Operator in timp ce Se pare că:

      În timp ce (condiție)

      În cazul în care un condiție. devine falsOperatorii din interiorul ciclului se opresc și controlul este transmis operatorului de lângă ciclu.

      Condiții: Condițiile / starea are loc înainte ca operatorii să fie îndeplinite în interiorul ciclului. În cazul în care un condiție. Se intoarce adevărat., operatorii sunt executați și condiție. Verificat din nou. Dacă se întoarce condiția falsExecuția ciclului se oprește și controlul este transmis operatorului pentru a merge după operator in timp ce.

      Exemplul 1.

      Acest ciclu in timp ce Elemente, până acum n. Mai puțin 3 :

      n \u003d 0; x \u003d 0; În timp ce (N.< 3 ) { n ++; x += n ; }

      Cu fiecare iterație, ciclul crește n. și adaugă această valoare variabilei x.. Prin urmare, x. și n. Luați următoarele valori:

      • După primul pasaj: n \u003d 1 și x \u003d 1
      • După al doilea pasaj: n \u003d 2 și x \u003d 3
      • După al treilea pasaj: n \u003d 3 și x \u003d 6
      După finalizarea a trei treceri ale ciclului, condiție. n.< 3 Nu mai este adevărat, astfel încât execuția ciclului este întreruptă.

      Exemplul 2: Ciclul infinit.

      Asigurați-vă că starea ciclului este într-o zi fals; În caz contrar, ciclul nu va întrerupe niciodată. Operatorii următorului ciclu in timp ce sunt efectuate infinit, deoarece condiția nu va fi niciodată fals:

      În timp ce (adevărat) (Alert ("Hello, Lumea"))

      3.4. Operatorul de etichete

      Operator eticheta Este un identificator la care vă puteți referi la orice loc al programului. De exemplu, puteți utiliza eticheta Pentru a identifica un ciclu și apoi utilizați operatori pauză sau continua. Pentru întreruperea unui ciclu sau continuarea executării.

      Operatorul de sintaxă eticheta Se pare că:

      etichetă: Declarație.

      Sens eticheta Este posibil să existe un identificator JavaScript credincios care nu este un cuvânt rezervat. Operatorul / declarația identificabilă cu etichetapoate fi orice operator.

      Exemplu.

      În acest exemplu eticheta markloop. Identifică ciclul in timp ce.

      markloop: în timp ce (Theark \u003d\u003d Adevărat) doze (); )

      3.5. Pauza operatorului

      Utilizați operatorul pauză Pentru întreruperea ciclurilor intrerupator sau operator etichetat. eticheta.
      • Dacă utilizați pauză fără eticheta, el întrerupe imediat cel mai apropiat in timp ce, face în timp ce, pentru sau intrerupator și transferă controlul la următorul operator.
      • Dacă utilizați pauză din eticheta, Întrerupe operatorul marcat specificat.
      Operatorul de sintaxă pauză Astfel de:

      unu . Sparge 2. Sparge eticheta.

      Prima opțiune întrerupe cel mai apropiat ciclu care conține sau intrerupator; A doua opțiune întrerupe operatorul specificat având o etichetă.

      Exemplu.

      Iterația se efectuează pe elementele matricei până când indicele elementului se găsește cu valoarea valoarea:

      pentru (i \u003d 0; i< a . length ; i ++ ) { if (a [ i ] = theValue ) break ; }

      3.6. Continuați operatorul

      Operator continua. Folosit pentru a reporni operatorii in timp ce, face în timp ce, pentru și eticheta.
      • Dacă utilizați continua. fără eticheta, întrerupe repetarea actuală a celui mai apropiat ciclu În timp ce, faceți-timp sau pentru Și continuă să efectueze acest ciclu cu următoarea iterație. Spre deosebire de operator pauză, continuați. Nu întrerupe complet execuția ciclului complet. În ciclu in timp ce El merge mai departe condiție.. În ciclul de pe expresie-expresie.
      • Dacă utilizați continuați cu eticheta, se aplică operatorului de ciclism identificat prin aceasta eticheta.
      Operatorul de sintaxă continua. Astfel de:

      unu . Continuați 2. Continuați eticheta

      Exemplul 1.

      Acesta este un exemplu de cicluri in timp ce cu operator. continua.care este efectuată dacă valoarea i. in aceeasi masura 3 . În acest fel, n. Obține 1, 3, 7 și 12 valori.

      i \u003d 0; n \u003d 0; In timp ce eu.< 5 ) { i ++; if (i == 3 ) continue ; n += i ; }

      Exemplul 2.

      Operatorul marcat ca. checkiandj., conține un operator marcat ca checkj.. Dacă este detectat continua., programul întrerupe iterația curentă checkj. Și începe următoarea iterație. De fiecare dată când este detectat, checkj. începe din nou iterația până când starea lui se întoarce fals. Dacă este returnat fals, partea rămasă a operatorului este efectuată checkiandj. și checkiandj. Necesită până când starea lui returnează fals. Dacă se întoarce fals, programul continuă să fie executat de la operator după checkiandj..

      Dacă continuă să fie eticheta pentru checkiandj., programul va continua să efectueze de la începutul operatorului checkiandj..

      checkiandj: în timp ce (i< 4 ) { document . write (i + "
      "); i + \u003d 1; checkj: în timp ce (J\u003e 4) (document. Scrieți (J +"
      "); J - \u003d 1; dacă ((J% 2) \u003d\u003d 0) Continuați Checkj, document. Scrieți (J +" este ciudat.
      ");) Document. Scrieți (" I \u003d "+ I +"
      "); Document. Scrieți (" J \u003d "+ J +"
      " ) ; }

      4. Obiecte de manipulare a operatorilor

      JavaScript utilizează operatorii pentru ... In. și cu. Pentru manipularea obiectelor.

      4.1. Operator pentru ... în

      Operator pentru ... In. Iztering variabila specificată în toate proprietățile obiectului. Pentru fiecare proprietate JavaScript realizată efectuează operatori specificați. Operator pentru ... In. Se pare că:

      Pentru (variabil în obiect) (

      Exemplu.

      Această caracteristică are un nume de obiect și un obiect ca argument. Apoi, se caracterizează prin toate proprietățile acestui obiect și returnează șirul - lista de proprietăți și valorile acestora.

      funcție Dump_props (obj, obj_name) (rezultatul Var \u003d "" pentru (VAR I în Obj) (rezultat + \u003d obj_name + "." + I + "\u003d" + obj [i] + "
      ") Rezultat + \u003d"


      "Rezultatul retur;)

      Pentru obiect mașină cu proprietăți face și model Rezultatul va fi astfel:

      mAȘINĂ. Make \u003d masina Ford. Model \u003d mustang.

      4.2. Operator cu

      Operator cu. Setează obiectul implicit pentru un set de bloc de operator. JavaScript vizualizează nume necalificate în blocul operatorului și determină dacă numele sunt proprietățile obiectului implicit. Dacă numele necalificat este o proprietate, această proprietate este utilizată în operator; În caz contrar, se utilizează o variabilă locală sau globală.

      Operatorul se pare așa:

      cu (obiect) (state)

      Exemplu.

      Aici este operatorul cu. Specifică faptul că obiectul Matematică. Este obiectul implicit. Operatorii după operator se referă la proprietate Pi. și la metode cos. și păcat. Fără a specifica un obiect. JavaScript acceptă obiectul Matematică. ca obiect pentru aceste apeluri.

      var a, x, y ;; var r \u003d 10 cu (matematică) (a \u003d pi * r * r; x \u003d r * cos (pi); y \u003d r * păcat (pi / 2);)

      Notă:

      Utilizarea cu Operatorul poate încetini în mod semnificativ execuția programului.

      5. Comentarii

      Comentariile explică de obicei acțiunile efectuate de cod. Comentariile sunt ignorate de interpret. JavaScript acceptă Java și C ++ Comentarii:
      • O singură linie cu o slash dublu la începutul liniei (//).
      • Multi-Line Comentariu cu simboluri / * la început și cu simboluri * / la sfârșit.
      Exemplu.

      Iată un exemplu de două comentarii:

      // Acesta este un comentariu cu o singură linie. / * Și aceasta este o linie multiplă. Poate fi o lungime și puteți pune totul aici oriunde. * /

      6. Operatori de procesare a executării

      Puteți face o excepție de la operator arunca și se ocupă de operatori Încearcă să prinzi.

      Operator Încearcă să prinzi De asemenea, este folosit pentru a face față excepțiilor lui Java. Vedeți "procesul de excepție Java în JavaScript" și "procesarea excepției JavaScript în Java".

      6.1. Aruncați operatorul

      Operator arunca Folosit pentru a apela o excepție. Dacă apelați o excepție, specificați o expresie care conține o valoare excepțională:

      aruncați expresia

      Următorul cod determină mai multe excepții.

      arunca "eroare2"; // generează o excepție cu o valoare a șiruluiarunca 42; // generează o excepție cu o valoare de 42aruncați adevărata; // generează o excepție cu adevărat

      Când apelați o excepție, puteți specifica un obiect. Apoi vă puteți referi la proprietățile obiectului din bloc. captură. Următorul exemplu creează un obiect myUserERexception Tip USEREXCEPTION. și îl folosește în operator arunca.

      // Creați un tip de obiect UseRexceptionfuncție UtilizareERexception (acest mesaj \u003d mesaj; acest lucru. Nume \u003d "USEREXCEPTION";) // Creați o instanță obiectmyUserERexception \u003d New UseRexception ("Valoare prea mare"); Arunca myuserexception;

      6.2. Încercați ... Operator de captură

      Operator Încearcă să prinzi Marchează blocul de operare, încercând să le efectueze și să specifice una sau mai multe opțiuni de răspuns atunci când apare o excepție. Dacă a apărut excepția, operatorul Încearcă să prinzi îl îngrijește.

      Operator Încearcă să prinzi Constă din bloc încerca.care conține unul sau mai mulți operatori și zero sau mai multe blocuri capturăcare conțin operatori care specifică acțiuni la apelarea unei excepții în bloc încerca.. Care este, dacă doriți să executați blocul încerca. și nu este executat, treceți controlul la bloc captură. Dacă orice operator bloc încerca. (sau funcția operatorului cauzată de bloc încerca.) Cauze o excepție, conducerea este imediat transmisă blocului. captură. Dacă excepția nu a fost cauzată, blocul captură săriți. bloc in cele din urma. Efectuate după blocare încerca. și capturăDar înainte de a efectua un operator după blocul de operare Încearcă să prinzi.

      Următorul exemplu utilizează operatorul Încearcă să prinzi. Se numește o funcție care solicită numele lunii de la matrice, pe baza valorii transmise de funcția. Dacă valoarea nu corespunde numărului lunii (1-12), o excepție este cauzată de valoarea "InvalidMonthno" Blocați operatorii captură Setați variabila B. monhname. valoare "Necunoscut".

      funcție getmonthname (mo) (mo \u003d mo - 1; // Rafinați numărul lunii pe indicele de matrice (1 \u003d ianuarie, 12 \u003d dec)var Luni \u003d Array nou ("Jan", "Feb", "Mar", "APR", "May", "Jun", "Jul", "Aug", "Oct", "Nov", "Nov", " "Dec"); Dacă (luni [mo]! \u003d Null) (Întoarcere luni [mo]) altceva (arunca "invalidmonthno")) încercați ( // Încercați să executați acești operatori:numele lunii \u003d Getmonthname (mithonth) // funcția poate provoca o excepție) Captura (e) (luna \u003d "necunoscut" Logmyerrors (e) // Obiect care a provocat o excepție este transmisă de către dispozitivul de funcționare a excepției}

      arunca; Puteți utiliza acest identificator pentru a obține informații despre dezactivat. JavaScript creează acest identificator atunci când introduceți blocul captură; Identificatorul există numai în perioada de execuție captură; După finalizarea executării blocului captură Identificatorul nu mai este disponibil.

      De exemplu, următorul cod determină o excepție. Dacă apare o excepție, controlul este transmis în bloc captură.

      Încercați (arunca "myeException" // este generată o excepție) Captura (e) (e) // operatori pentru procesarea oricărei excepțiilogmyerrors (E) // Excepție este transmisă la Handler de eroare}

      Blocuri de captură multiple

      Operator unic încerca. poate conține mai multe blocuri condiționate capturăFiecare dintre care procesează un anumit tip de excepție. În acest caz, intrarea în blocul condițional adecvat captură Se efectuează numai la apelarea unei excepții specificate pentru acest bloc. De asemenea, puteți alege să activați o unitate separată. captură Pentru toate excepțiile nerecunoscute ca bloc final captură în operator.

      De exemplu, următoarea funcție determină alte trei funcții (declarate în altă parte) care verifică argumentele sale. Dacă funcția de testare determină că componenta verificată este incorectă, acesta returnează 0, forțând funcția de apel să apeleze la o anumită excepție.

      funcție getcustinfo (nume, id, e-mail) (var n, i, e; dacă (! Validate_name (nume)) arunca "InvalidnameException" altceva n \u003d nume; dacă (! Validate_id (id)) arunca "InvalidideException" altceva i \u003d ID ; dacă (! validate_email (e-mail)) arunca "InvalideAliilexception" altceva e \u003d e-mail; cust \u003d (n + "+ i +" + e); întoarcerea (cust);)

      Blocuri condiționate captură Gestionați apelul la manipulatorul de excepție corespunzător.
      " ) { // sună manipulatorul ID-urilor / identificatorilor incorectebad_id_handler (e)) captura (E dacă E \u003d\u003d "InvalideAliileXception") ( // determină manipularea adreselor de e-mail incorectebad_email_handler (e)) captura (e) (e) // Excepție fără cunoștință este înregistrată în fișierul jurnallogError (E))

      În cele din urmă unitatea

      În cele din urmă, blocul conține operatori efectuați după blocare încerca. și captură, dar înainte de efectuarea operatorilor după operator Încearcă să prinzi. bloc in cele din urma. Se efectuează indiferent dacă a fost cauzată o excepție. Dacă se numește excepția, blocați operatorii in cele din urma. sunt efectuate chiar dacă nu există bloc captură nu a făcut o excepție.

      Puteți utiliza blocul in cele din urma. Pentru finalizarea corectă a scenariului atunci când apare o excepție; De exemplu, este posibil să aveți nevoie să eliberați resursele asociate unui script. În exemplul următor, fișierul se deschide și operatorii lucrează cu acesta (serverul JavaScript vă permite să accesați fișierele). Dacă se numește o excepție cu fișierul deschis, blocul in cele din urma. Închide fișierul înainte ca scriptul să eșueze.

      openmyfile (); Încercați (writemyfile (themeda)) în cele din urmă (closemyfile () // resursa se închide întotdeauna}

      Introducerea operatorilor încearcă ... captura

      Puteți investi unul sau mai mulți operatori. Încearcă să prinzi reciproc. Dacă operatorul intern Încearcă să prinzi Nu are bloc capturăCoincidența este verificată bloc captură care conține operatorul IT Încearcă să prinzi.