JavaScript dacă sunt îndeplinite două condiții, afișați un mesaj. Operator condiționat în Javascript. Switch operator în javascript - switch

Lecția #5
Branch if declarații în JavaScript

Operatori de filiale sunt concepute astfel încât programul să poată rula unul sau altul bloc de cod, în funcție de dacă condiția este adevărată sau falsă.

Există cinci tipuri de operatori de sucursale, în această lecție ne vom uita la două dintre ele:
— operator de sucursală dacă
— operator de sucursală dacă altfel

Rulează cod dacă condiția returnează true .

Condițiile în operatorii de sucursale sunt de obicei operații de comparație sau operații logice.

Diagrama declarației de ramură if arată astfel:

Dacă (condiție) (codul va rula dacă condiția returnează adevărată)

Să dăm un exemplu cu operatorul de sucursală dacă:

// creează două variabile var numOne; var numTwo; // atribuie valori variabilelor numOne = 5; numDoi = 3; if (numOne > numDoi) ( alert("Condiția a returnat adevărată"); )

În script, am creat două variabile numOne și numTwo și le-am atribuit valorile numerice 5 și 3.

Apoi, am creat un operator de ramificare if care compară valorile a două variabile. Dacă operația de comparare returnează adevărat, atunci codul situat între acolade va rula. În cazul nostru, va apărea o fereastră cu mesajul Condiție returnată adevărată. Dacă operația de comparare returnează false , atunci nu se va întâmpla nimic.

Caracterele duble oblice // sunt comentarii. După dublă bară, puteți scrie orice text, interpretul JavaScript îl va percepe ca un comentariu și nu îl va procesa. După cum ne amintim, în limbi și, de asemenea, puteți crea comentarii.

Declarație de ramură dacă altfel, este conceput pentru a rula un anumit bloc de cod, în funcție de valoarea pe care o va returna condiția: adevărat sau fals

Diagrama operatorului de ramificație if else arată astfel:

If (condiție) (codul va rula dacă condiția returnează adevărată) else (codul va rula dacă condiția returnează false)

Să dăm un exemplu cu operatorul de ramură if else:

VarnumOne; var numTwo; numOne = 5; numDoi = 3; if (numOne > numDoi) ( alert(„Condiția a returnat adevărată”); ) else (alertă(„Condiția a returnat falsă”); )

Atribuiți variabilei numTwo, un număr mai mare decât 5, de exemplu 7, apoi condiția va returna false și va apărea o fereastră cu mesajul Condition returned false.

În acest articol ne vom uita la operatorii condiționali și logici ai limbajului JavaScript.

Declarații condiționale JavaScript

Declarații condiționale sunt operatori JavaScript (ECMAScript) care, în funcție de anumite condiții, vă permit să executați una sau mai multe instrucțiuni specifice.

Forme de declarații condiționate în JavaScript:

  • instrucțiunea if condiționată (cu o ramură);
  • declarație condiționată dacă...altfel (cu două ramuri);
  • declarație condiționată else if... (cu mai multe ramuri);
  • operator ternar (?: );
  • declarație de selecție a comutatorului.

Declarație condițională if

Sintaxa instrucțiunii if este:

If (condiție) declarație

Instrucțiunea condițională if constă din:

  • cuvânt cheie if ;
  • condiții (expresii în paranteze) care trebuie evaluate la adevărat sau fals (sau să fie turnate la una dintre aceste valori);
  • instrucțiuni de urmat, dacă condiția este adevărată sau exprimată în ea.

De exemplu:

Dacă (adevărat) număr = 4;

Acest exemplu folosește true ca condiție. Aceasta înseamnă că numărul de instrucțiuni = 4 va fi întotdeauna executat. Acest exemplu este dat pur și simplu pentru a explica principiul de funcționare al instrucțiunii if, deoarece este lipsit de orice sens.

De exemplu, să creștem valoarea variabilei voturi cu 1 dacă aceasta (tipul său) este un număr:

Dacă (tip de voturi === „număr”) voturi++;

Dacă trebuie executate mai multe instrucțiuni, acestea trebuie plasate între acolade:

Dacă (tip de voturi === "număr") ( voturi++; console.log ("Număr de voturi: " + voturi); )

Dacă (tip de voturi === „număr”) (voturi++; )

Dacă...altfel afirmație

Instrucțiunea if...else este folosită atunci când este necesar să se execute unele instrucțiuni dacă o condiție este adevărată, iar altele dacă este falsă.

Sintaxă:

If (condiție) ( una sau mai multe instrucțiuni (vor fi executate când condiția este adevărată sau este redusă la adevărată) ) else ( una sau mai multe instrucțiuni (vor fi executate când condiția este falsă sau este redusă la fals) )

De exemplu, să tipărim un mesaj pe consolă despre dacă numărul este par sau nu:

Dacă (numărul % 2) ( console.log ("Numărul este impar!"); ) else ( console.log ("Numărul este par!"); )

Regula pentru a aduce o condiție la adevărat sau fals

Dacă expresia în condiția unei declarații if nu este adevărată sau falsă, atunci JavaScript o va arunca la una dintre acele valori. El efectuează această acțiune folosind așa-numita „regula minciunii”.

Sensul acestei reguli: orice expresie este adevărată, cu excepția următoarelor valori:

  • fals (fals);
  • "" sau "" (șir gol);
  • NaN (tip de date numerice speciale „nu un număr”);
  • 0 (număr „zero”);
  • null(valoare „goală”);
  • nedefinit (valoare „nedefinită”).

De exemplu, să afișăm un mesaj de bun venit în consola browserului, în funcție de ce valoare este stocată în variabila nameUser:

If (numeUtilizator) ( console.log ("Bună ziua, " + nume + "!"); ) else ( console.log ("Bună ziua, oaspete!"); )

Dacă variabila nameUser conține un șir gol, atunci, conform regulii minciunii, va fi turnată la valoarea false. În consecință, mesajul „Bună ziua, oaspete!” va fi imprimat pe consolă. .

Și dacă, de exemplu, variabila nameUser conține șirul „Timur”, atunci expresia din condiție va fi redusă la valoarea true. Ca rezultat, consola va afișa mesajul „Bună ziua, Timur!” .

else if... declarație (condiții multiple)

Sintaxă:

If (condiția 1) (instrucțiunile 1) else if (condiția 2) (instrucțiunile 2) else if (condiția 3) (instrucțiunile 3 //...) else if (condițiaN) (instrucțiunile N) else (instrucțiunile care vor fi executate dacă nici una dintre condiții nu este adevărată sau nu este redusă la această valoare)

Operator condiționat (ternar) (?:)

Operator ternar– un operator JavaScript care poate fi folosit atunci când este necesar, în funcție de condiție, să execute una dintre cele două expresii date.

Sintaxă:

Stare? expresie1: expresie2

Operatorul ternar este format din trei operanzi care sunt separați prin simboluri? Și: . Condiția operatorului ternar este specificată în primul operand. Poate fi inclus și între paranteze. Dacă condiția este adevărată sau se va reduce la această valoare, expresia1 va fi executată, în caz contrar expresia 2 va fi executată.

De exemplu:

(număr > 10) ? console.log("Numărul este mai mare decât 10!"): console.log("Numărul este mai mic sau egal cu 10");

JavaScript permite mai mulți operatori ternari (?:):

Var dayNumber = data noua().getDay(); zi = (dayNumber === 0) ? „Duminică”: (dayNumber === 1) ? „Luni” : (dayNumber === 2) ? „Marți” : (dayNumber === 3) ? „Miercuri” : (dayNumber === 4) ? „Joi” : (dayNumber === 5) ? „Vineri”: (dayNumber === 6) ? „Sâmbătă” : „Ziua necunoscută a săptămânii”; console.log("Astăzi " + day.toLowerCase() + ".");

Exemplul de mai sus, dar folosind notația multiplă a instrucțiunii if...else:

Var dayNumber = data noua().getDay(); if (dayNumber === 0) (day = „Duminică”; ) else if (dayNumber === 1) (day = „Luni”; ) else if (dayNumber === 2) ( zi = „Marți”; ) else if (dayNumber === 3) ( day = "Miercuri"; ) else if (dayNumber === 4) ( day = "Joi"; ) else if (dayNumber === 5) ( zi = "Vineri"; ) else if (dayNumber === 6) ( day = „Sâmbătă”; ) else (day = „Ziua necunoscută a săptămânii”; ) console.log(„Astăzi „ + day.toLowerCase() + „.");

declarație switch

Declarația switch este concepută pentru a executa una dintre mai multe instrucțiuni în funcție de valoarea expresiei. Alegerea uneia sau alteia opțiuni este determinată de egalitatea strictă a rezultatului expresiei cu valoarea cazului (cazului).

Sintaxa instrucțiunii Switch:

Switch (expresie) (case value1: // ... instrucțiuni care vor fi executate dacă rezultatul evaluării expresiei este „value1” break; // instrucțiune opțională (dacă nu este utilizată, următoarea comandă a instrucțiunii switch va fi executată ) case value2: // ... instrucțiuni care vor fi executate dacă rezultatul evaluării expresiei este „valoare2” break // instrucțiune opțională (dacă nu este utilizată, următoarea comandă a operatorului comutator va fi executată) // .. . case valueN: // .. instrucțiuni care vor fi executate dacă rezultatul evaluării expresiei este „valueN” // instrucțiune opțională (dacă nu este utilizată, următoarea comandă a instrucțiunii switch) / instrucțiuni care vor fi executate dacă rezultatul expresiei nu este egal cu mai mult de una dintre valori)

Cuvântul cheie implicit este opțional. Este folosit atunci când trebuie să specificați instrucțiuni care trebuie executate dacă rezultatul unei expresii nu este egal cu nicio valoare a cazului (cazului).

Declarația break este opțională. Este conceput pentru a întrerupe execuția unei instrucțiuni switch și a transfera pentru a controla instrucțiunea care vine după aceasta.

De exemplu, să afișăm un mesaj în consola browserului despre numărul de bomboane:

Var countCandyBoys = 1, countCandyGirls = 2, mesaj; comutați (countCandyBoys + countCandyGirls) ( cazul 1: mesaj = „O bomboană”; pauză; cazul 2: cazul 3: mesaj = „Două sau trei bomboane”; pauză; cazul 4: mesaj = „Patru bomboane”; pauză; implicit: mesaj = "Nu una, nu două, nu trei sau patru bomboane" ) // imprimă un mesaj în consola console.log(message);

În exemplul de mai sus, expresia evaluată este 3. Prin urmare, mesajul = „Două sau trei bomboane” și instrucțiunile de pauză vor fi executate. Instrucțiunea break va întrerupe execuția ulterioară a instrucțiunii switch și va transfera controlul către instrucțiunea care vine după ea, de exemplu. console.log(mesaj) . Va afișa un mesaj în consolă „Două sau trei bomboane”.

De exemplu, să afișăm ziua curentă a săptămânii în consolă:

Var ziua = ""; comutare(new Date().getDay()) (cazul 0: zi = „duminică”; pauză; caz 1: zi = „luni”; pauză; caz 2: zi = „marți”; pauză; caz 3: zi = "Miercuri"; caz 4: ziua = "Vineri";

Un exemplu care nu folosește instrucțiunea break:

Var rezultat = „succes”; comutare (rezultat) (case „succes”: console.log(„Succes!”); case „invalidCaptcha”: console.log(„Captcha nevalid!”); implicit: console.log(„Eroare!”); )

În acest exemplu, expresia declarației switch este de succes. Prin urmare, va fi executată instrucțiunea console.log("Success!"), care va imprima mesajul "Success!" la consolă. Dar, deoarece nu există nicio instrucțiune break după aceasta, execuția scriptului va continua în versiunea următoare. Astfel, instrucțiunile vor fi executate până când se întâlnește o pauză pe cale sau se ajunge la sfârșitul instrucțiunii switch. Ca rezultat al rulării acestui exemplu, vor fi transmise 3 mesaje către consolă: „Succes!” ,„Captcha invalid!”

și „Eroare!” .

În unele cazuri, acest comportament poate fi necesar, dar nu în acest caz. Aici s-a făcut pur și simplu o greșeală.

Exemplu corectat:

Var rezultat = „succes”; comutare (rezultat) (case „succes”: console.log(„Succes!”); break; case „invalidCaptcha”: console.log(„Captcha invalid!”); break; default: console.log(„Eroare!” )

Operatori logici

  • JavaScript face distincție între următorii operatori logici:
  • && - „ȘI” logic;
  • || - „SAU” logic;

! -logic „NU”.

Dacă expresia booleană operand1 && operand2 utilizează valori booleene, expresia este evaluată la adevărat dacă fiecare este adevărat; în caz contrar, valoarea acestei expresii va fi falsă.

Dacă expresia booleană operand1 && operand2 utilizează valori non-booleene, rezultatul expresiei va fi operand1 dacă poate fi turnat la false ; altfel rezultatul acestei expresii va fi operand2.

5 && 0 // 0 1 && 5 // 5 "line" && nedefinit // nedefinit "line1" && "line2" // "line2"

Dacă într-o expresie logică operand1 || operand2 folosește valori booleene, atunci rezultatul acestei expresii va fi adevărat dacă cel puțin una dintre ele este adevărată; în caz contrar, valoarea acestei expresii va fi falsă.

Fals || fals // fals adevărat || fals // adevărat fals || adevărat // adevărat adevărat || adevărat // adevărat

Dacă într-o expresie logică operand1 || operand2 utilizează valori non-booleene, rezultatul acestei expresii va fi operand1 dacă poate fi turnat la true ; altfel rezultatul acestei expresii va fi operand2.

5 || 0 // 5 1 || 5 // 1 „linie” || nedefinit // "șir" "șir1" || "line2" // "line1"

Expresia booleană!operand1 va fi evaluată la adevărat dacă operand1 este fals sau poate fi turnat la acea valoare; altfel rezultatul acestei expresii va fi fals .

False // adevărat !adevărat // fals !"șir" // fals !5 // fals"

var a = 10; var b = (a>1) ? 100:200; alerta(b);

Dacă condiția a>1 adevărat, apoi variabila b atribuie valoare 100 , altfel atribuiți valoarea variabilei b 200 .

Sarcina Js 3_4. Adăugați cod: 3 variabile locale sunt declarate folosind cuvântul cheie var. Este necesar să atribuiți valoarea următorului operator ternar variabilei max: dacă a este mai mare decât b, atunci returnăm a, în caz contrar returnăm b.
Fragment de cod:

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


Întrebări pentru autocontrol:

  1. Care este sintaxa operatorului ternar?
  2. Câte argumente are operatorul ternar?

Switch operator în javascript - switch

Instrucțiunea javascript switch este utilizată pentru a testa o variabilă pentru mai multe valori:

Sintaxă:

comutare (variabilă sau expresie) ( case option1: //..bloc de instrucțiuni.. break case option2: //..bloc de instrucțiuni.. break default: //..bloc de instrucțiuni.. )

Se verifică valoarea unei variabile sau expresii: în fiecare caz se verifică una dintre valori, dacă valoarea este potrivită, se execută unul sau altul bloc de operatori corespunzător acestuia caz.

Blocul care începe cu cuvântul de serviciu implicit poate fi omis. Instrucțiunile de bloc vor fi executate dacă niciuna dintre valorile enumerate nu este prezentă în totalitate caz nu se potriveste.

Important: Instrucțiunea break este necesară după fiecare valoare variabilă considerată (după fiecare caz); dacă nu îl utilizați, atunci toate declarațiile de mai jos vor fi tipărite

Comparați cu operatorul DACĂ:

var a = 2; comutați(a) (caz 0: // dacă (a === 0) caz 1: // dacă (a === 0) alertă ("Zero sau unu"); // apoi imprimați... pauză; caz 2: // if (a === 2) alert("Două" // apoi afișa... break default: // else alert("Multe");

Cum se grupează mai multe opțiuni?

Pentru a executa aceleași instrucțiuni, este posibil să grupați mai multe caz. Ca în exemplul de mai sus:

Cazul 0: cazul 1: alertă(„Zero sau unu”);

pauză; ...

Când a = 0 și a = 1, se execută aceeași instrucțiune: alert("Zero sau unu"); Exemplul 4: Solicitați utilizatorului să introducă o culoare. Ieșiți traducerea în engleză a culorii introduse. Pentru culoare"albastru" Şi"albastru"


produc aceeași valoare.
  • ✍ Soluție: Creați o pagină web cu schelet și etichetă html.
  • scenariu Inițializați variabila
  • culoare

    var culoare = prompt("Ce culoare?") ;

  • var culoare = prompt("Ce culoare?"); Verificați valoarea unei variabile folosind un construct transpira
  • , rezultând pentru fiecare valoare translația corespunzătoare:

    comutator (culoare) (caz "roșu": alertă ("roșu"); pauză; caz "verde": alertă ("verde"); pauză; // ... Inițializați variabila Dacă variabila Inițializați variabila are valoarea „roșu”, apoi afișați traducerea în fereastra modală - „roșu” și ieșiți din structură (break;). Dacă variabila

  • are valoarea „verde”, apoi afișați traducerea în fereastra modală - „verde” și ieșiți din structură (break;). Solicitați utilizatorului să introducă o culoare. Ieșiți traducerea în engleză a culorii introduse. Pentru culoare"albastru" Şi Pentru flori
  • efectuați gruparea:

    comutator (culoare) (caz "roșu": alertă ("roșu"); pauză; caz "verde": alertă ("verde"); pauză; // ... Inițializați variabila// ... caz "albastru": caz "albastru": alert("albastru"); Inițializați variabila pauză; // ...

  • are valoarea „albastru” sau variabilă
  • are valoarea „albastru”, apoi afișează traducerea în fereastra modală - „albastru” și iese din structură (break;). Organizați ieșirea pentru acele culori care nu sunt furnizate de program:// ... implicit: alert(

    „nu avem informații despre această culoare”

  • ) ) // comutator final

// ... implicit: alert("nu avem informații despre această culoare") ) // comutator final Testați scriptul într-un browser.

14 15 16 17 Sarcina Js 3_6. Găsiți și remediați erorile în următorul fragment de cod: var number = prompt( „Introduceți numărul 1 sau 2:”) ; } ; }

var number = prompt("Introduceți numărul 1 sau 2:"); comutați (număr) (case "1" ( document.write ("Unul"); ); pauză; case "2" ( document.write ("Doi"); ); pauză; implicit ( document.write ("Ați introdus altă valoare decât 1 și 2"); ); )


Js sarcina 3_7. Ce va fi afișat pe ecran când rulați următorul cod?:

1 2 3 4 5 6 7 8 9 10 11 12 13 var valoare = "2" ;

comutator (valoare) ( ​​case "1": case "2": case "3": document.write ("Bună ziua") ; break ; case "4": case "5": document.write ("Lumea" ); implicit: document.write("Eroare");


var valoare = "2"; comutator (valoare) ( ​​cazul „1”: cazul „2”: cazul „3”: document.write(„Bună ziua”); break; case „4”: cazul „5”: document.write(„Lumea” ); implicit: document.write("Eroare"); Sarcina Js 3_8. Cereți utilizatorului un număr - numărul de corbi de pe ramură. În funcție de numărul introdus (nu mai mult de 10), afișați mesajul: - Se așează pe o ramură 1 corb Cereți utilizatorului un număr - numărul de corbi de pe ramură. În funcție de numărul introdus (nu mai mult de 10), afișați mesajul: - Se așează pe o ramură - Stă pe o creangă

  1. 4 corbi 10 corbi.
  2. În funcție de numărul introdus, sfârșitul cuvântului se schimbă
  3. "cioară"


Întrebări pentru autocontrol:

  1. Pentru a verifica, utilizați operatorul de comutare javascript. Salvați această pagină în dosarul dvs. de rezultate (va fi utilă pentru lucrările viitoare).?
  2. În ce caz este recomandabil să folosiți construcția ca operator condiționat Salvați această pagină în dosarul dvs. de rezultate (va fi utilă pentru lucrările viitoare).?
  3. comutator Salvați această pagină în dosarul dvs. de rezultate (va fi utilă pentru lucrările viitoare).?
  4. Care este scopul blocului implicit din instrucțiune? Salvați această pagină în dosarul dvs. de rezultate (va fi utilă pentru lucrările viitoare).?

Este necesar să folosiți instrucțiunea break într-o construcție?

Sintaxă:

Cum să grupați pentru mai multe opțiuni de valoare într-o declarație

Important: Operatori ciclici JavaScript - Pentru

  • for(valoarea inițială a contorului; condiția; creșterea contorului) ( //..bloc de instrucțiuni.. )
  • O buclă în javascript for este utilizată atunci când se știe dinainte de câte ori ar trebui repetate acțiunile ciclice (de câte iterații are bucla)

  • O expresie de atribuire este folosită ca valoare inițială a contorului de iterații: de exemplu, i=0 - contorul buclei începe de la zero: 1 :
  • for(var i = 0; condiție; increment contor) ( //..bloc de instrucțiuni.. )

  • Creșterea contorului specifică pasul cu care ar trebui să crească contorul: de exemplu, indică faptul că fiecare iterație a buclei va fi însoțită de creșterea acesteia cu
  • for(var i = 0; condiție; i++) ( //..bloc de instrucțiuni.. )<10; i++) { //..блок операторов.. }

Condiția buclei este valoarea finală a contorului: de exemplu, i10, oprește bucla:

pentru(var i = 0; i Să ne uităm la un exemplu de utilizare a unei bucle for în javascript: 0 1 2 3 ... 9 Exemplul 5:


produc aceeași valoare.
  • Pentru a afișa o secvență de numere, vom folosi un contor de buclă for, care ar trebui să își schimbe valoarea de la 0 la 9 conform succesiunii.
  • Deci pentru valoarea inițială a contorului buclei setați valoarea la 0 ; ca conditii de ciclu setați valoarea finală - ii=9; pasul contrar ar trebui să fie egal cu 1 (i++), deoarece diferența dintre membrii secvenței este una:
  • pentru (var i=0; i<10; i++) { document.write(i+"
    "); }

    În exemplu, valorile contorului buclei sunt afișate pe ecran, deoarece creșterea contorului i++, în consecință, va apărea pe ecran 0 1 2 3 ... 9 , cu fiecare cifră începând pe o nouă linie (tag
    ).

  • ) ) // comutator final

Sarcina Js 3_9. 1 la 15 .

  1. Utilizați un numărător de bucle ca o secvență de numere pentru.
  2. Pentru o variabilă de adunare, utilizați identificatorul de variabilă sumă.

Fragment de cod:

Pentru (var i=...;...;...)( suma = suma + ...; ) ...

Instrucțiuni de ieșire în buclă pauză"albastru" continuaîn JavaScript. Operator Ieșire

Operatorul de pauză întrerupe execuția întregului corp al buclei, adică. iese dintr-o buclă în javascript.

În timp ce instrucțiunea continue întrerupe execuția iterației curente a buclei, dar continuă execuția buclei de la următoarea iterație.

Să ne uităm la operația operatorilor de pauză și continuare folosind un exemplu:

Exemplu: Dezasamblați algoritmul fragmentului de cod. Ce va fi rezultat?

Fragment de cod:

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

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


produc aceeași valoare.
  • A treia linie a exemplului conține o condiție datorită căreia numărul 4 nu va fi afisat: operator continua va trece la următoarea iterație a buclei fără a o finaliza pe cea curentă.
  • Linia nr. 5 iese din buclă, dar în același timp și numărul 8 va fi afișat pe ecran, deoarece instrucțiunea de ieșire vine înaintea condiției (în a 4-a linie). Întâlnindu-se pauză, interpretul va termina bucla.
  • Că. ecranul va afișa: 0 1 2 3 5 6 7 8 - fiecare cifră este pe o linie nouă.

Sarcina Js 3_10. Tipăriți suma tuturor numerelor întregi din 1 la 15 , excluzând numerele din suma totală 5 "albastru" 7 .

Declarație de ieșire

Limbajul javasctipt oferă un operator pentru ieșirea din codul programului - operatorul de ieșire.
Cea mai obișnuită utilizare a operatorului este eliminarea erorilor de introducere a utilizatorului.


Să ne uităm la un exemplu:

Exemplul 6: Solicitați utilizatorului să introducă un număr. Dacă numărul introdus nu este un număr, atunci afișați un mesaj — Am nevoie de un număr!și opriți programul.


produc aceeași valoare.
  • scenariu număr valoarea introdusă de utilizator în fereastra modală:
  • var number = prompt("Introduceți un număr");

  • Folosind funcția parseInt pentru a converti un șir într-un număr întreg, verificați dacă valoarea introdusă este un număr:
  • număr=parseInt(număr); // returnează NaN - nu un număr

    Dacă numărul introdus nu este un număr, funcția va returna valoarea NaN (din engleză. nu un număr- nu un număr).

  • Verificați valoarea unei variabile număr folosind funcția isNaN:
  • x = esteNaN(număr); // va returna true dacă valoarea nu este numerică

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

  • De regula „minciunilor” organizați verificarea valorii unei variabile x. Dacă valoarea nu este numerică, tipăriți nota corespunzătoare și părăsiți programul:
  • if (x)( alert("Numărul necesar!"); ieșire; // ieși din program )

  • Pentru a continua programul (dacă valoarea introdusă a fost un număr), afișați următorul prompt de introducere:
  • alert("Introduceți al doilea număr");// dacă introduceți un non-număr, operatorul nu va fi executat

  • ) ) // comutator final

Întrebări pentru autocontrol:

  1. Listați trei parametri de buclă pentruși explică scopul lor.
  2. Ce instrucțiuni sunt folosite pentru a ieși dintr-o buclă și pentru a o întrerupe? Dați exemple de utilizare a acestora.
  3. Care este scopul operatorului? Ieșire?

Este posibil să aveți mai multe contoare într-un singur FOR?

Lucrări interesante cu bucla for este posibilă atunci când se utilizează simultan două contoare într-o buclă.
Să ne uităm la un exemplu:

Exemplul 7: Folosind scriptul, tipăriți următoarele perechi variabilă-valoare pe trei rânduri: i=0 j=2 i=1 j=3 i=2 j=4


produc aceeași valoare.
  • În bucla for, organizați două contoare: contorul i pentru a imprima secvența 0 1 2 , contorul j pentru ieșirea secvenței 2 3 4 :
  • 1 2 3 pentru (i= 0, j= 2; i< 10 , j< 5 ; i++, j++ ) { }

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

    Fiecare dintre cei trei parametri ai buclei for are acum două valori, care sunt listate separate prin virgule(de exemplu, primul parametru cu două valori: i=0, j=2). Parametrii înșiși sunt listați separate prin punct și virgulă(;).

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

    pentru(i=0, j=2; i<10, j<5; i++, j++) { document.write("
    i=", i, "j=",j); )

Generarea unei pagini din mers: cum este?

Înainte de a efectua următoarea sarcină, să ne uităm la un exemplu construirea dinamică a unei pagini html folosind javascript.

Exemplul 8:

  • Trebuie să generați în mod dinamic liste cu marcatori și numerotate pe o pagină web pe baza datelor introduse de utilizator: solicitați utilizatorului să intre vizualizare listă(numerotat (numărul 1) sau marcat (numărul 2)), și apoi numărul de articole din listă.
  • În funcție de răspuns, afișați etichete fie ale unei liste cu marcatori, fie ale unei liste numerotate, cu numărul necesar de articole.
  • Dacă este introdus un tip de listă inexistent, atunci afișați un mesaj "Introduceți tipul corect!"și ieșiți din program ().

Să ne amintim etichetele:
etichete de listă numerotate:

<ol > <li > <li > <li > </ol>

etichete de listă cu marcatori:

var listType=prompt("Introduceți "1" - dacă o listă cu marcatori, "2" - dacă o listă numerotată");

  • Verificați valoarea introdusă: pentru o listă numerotată (numărul 1) tipăriți eticheta
      , pentru marcat (numărul 2) - etichetă
        . Dacă este introdusă o valoare diferită, tipăriți o notă și încheiați programul:

            ") else ( alert("Introduceți tipul corect"); ieșire; )

          • scenariu kolvo valoarea introdusă de utilizator în fereastra modală:
          • var kolvo=prompt("Introduceți numărul de puncte");

          • Pentru a converti o valoare șir într-o valoare numerică, utilizați funcția parseInt:
          • pentru (var i=1; i<=kolvo; i++) document.write("");

          • Deoarece listele sunt închise cu etichete adecvate, în funcție de tipul de listă, tipăriți etichetele de închidere:
          • if (listType== "1" ) document.write("" ) else if (listType== "2") document.write ("" ) ;

            if (listType=="1") document.write("

        ") else if (listType=="2") document.write("
      ");

    1. ) ) // comutator final
    2. Js sarcina 3_11.
      Scrieți un script care să afișeze etichete intrare(elemente de control) de diferite tipuri, în funcție de numărul introdus:

      1 - câmp de text,
      2 - buton,
      3 - radio(comutator).

      Trebuie solicitat și numărul de etichete afișate.

      Să ne amintim etichetele:

      Pentru 1 - câmp text: Pentru 2 - buton: Pentru 3 - radio:

      Exemplu de ieșire:

      Misiunea Js 3_12. Desenați o tablă de șah 9x9 folosind javascript for bucle. Ar trebui să „desenați” tabla folosind etichete html pentru tabel:

      Să ne amintim etichetele:

      <chenar tabel = "1" lățime = "30%" > <tr > <td >-</td> -</td> </tr> </table>

      --

      • Pentru a desena 9 linii, trebuie să organizați o buclă exterioară for cu un contor i .
      • Pentru a desena 9 celule pe fiecare rând, trebuie să organizați o buclă interioară (imbricată) pentru cu un contor j .
      • Pentru a reda etichetele de celule și rânduri, ar trebui să utilizați metoda document.write.

      Rezultat:

      În plus:

      1. Afișați tabelul înmulțirii în celulele tabelului folosind contoare de buclă (i și j).
      2. Afișați primul rând și prima coloană cu un fundal roșu (atributul celulei de tabel bgcolor):
        <td bgcolor = "roșu" >-</td>

        -

      Rezultat:


      Întrebări pentru autocontrol:

      1. Explicați ce înseamnă conceptul de „construcție dinamică a paginii”?
      2. Ce construct de limbaj este cel mai des folosit atunci când construiești o pagină în mod dinamic?

      operatori ciclici javascript - while

      Sintaxa instrucțiunii while este:

      while (condiție) ( //..bloc de declarații.. );

      Exemplu: Afișează puteri de la două până la caseta de dialog 1000 (2, 4, 8 ... 512). Utilizați metoda alert().


      produc aceeași valoare.
      • Lista de scripturi:
      • 1 2 3 4 5 var a = 1 ;< 1000 ) { a*= 2 ; alert(a) ; }

        în timp ce (a< 1000){ a*=2; alert(a); }

        var a = 1; în timp ce (a

      • a*=2 → s-a folosit operația de atribuire compusă: un produs combinat cu o atribuire, i.e. la fel ca a = a*2

      Testați rezultatul în browser.

      Exemplu:

      var a = 1 ;< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; }

      în timp ce (a< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }

      Cum funcționează declarațiile break and continue într-o buclă while? 128 Puterile de doi vor fi scoase până la 64 inclusiv, și valoarea 2 4 8 16 32 128

      va fi ratat. Aceste. în casetele de dialog vom vedea: Sarcina Js 3_13.

      Ce valori va scoate următorul fragment de cod?< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }


      var counter = 5;în timp ce (contor Sarcina Js 3_14. la gradul y folosind o buclă while. Interogați valorile variabilelor și afișați rezultatul folosind alert() .

      Completează codul:

      1 2 3 4 5 6 7 8 9 var x = ...;

      var y = ...;

      contor = 1 ;

      1 2 3 4 5 6 7 8 9 10 11 12 13 număr= x; în timp ce (...) ( chislo= x* ...; counter= ...; ) alert(chislo) ; var x = ...; var y = ...; contor = 1; număr=x; in timp ce (...)( chislo=x*...; counter=...; ) alert(chislo);

      A Corectați eroarea din programul conceput pentru a găsi factorialul unui număr:


      var counter = prompt("Introduceți un număr" ); var factorial = 1;

      document.write( "Factorial al unui număr: "+ contor + "! = ");

      do ( if (contor == 0 ) ( factorial = 1 ; break ; ) factorial = factorial / contor; contor = contor + 1 ; ) while (contor > 0 ) ;

      document.write(factorial);

      var counter = prompt("Introduceți un număr"); var factorial = 1; document.write("Factorial al unui număr: " + contor + "! = "); do ( if (contor == 0) ( factorial = 1; break; ) factorial = factorial / contor; contor = contor + 1; ) while (contor > 0); document.write(factorial);
      Sarcina Js 3_16.

      Modificați programul pentru ca utilizatorul să introducă un nume:

      Exemplu: Solicitați un nume de utilizator până când utilizatorul introduce efectiv un nume (adică câmpul este de fapt completat și tasta de anulare nu este apăsată). Când este introdus numele, apoi afișați "Bună, nume!". document.


      produc aceeași valoare.
      • Cum să găsiți erori în javascript? În unele cazuri, codul de pe pagină nu funcționează dintr-un motiv necunoscut. Unde să cauți eroarea? În astfel de cazuri, puteți utiliza operatorul try..catch. Instrucțiunea try..catch încearcă să execute o bucată de cod, iar dacă există o eroare în cod, este posibil să se afișeze eroarea pe ecran.
      • Eroarea este stocată în obiectul e.message.

        Să ne uităm la munca operatorului folosind un exemplu:

      • scrieți o declarație de eroare în program. Verificați dacă există erori în codul presupus eronat: dacă există o eroare în cod, afișați un mesaj
      • 6 7 8 9 „Gestionarea erorilor: numele erorii” "tratarea erorilor:"+ e.mesaj);

        )

        catch(e) ( alert("tratarea erorilor: "+e.message); )

      • Dacă există într-adevăr o eroare, atunci operatorul catch stochează această eroare în obiectul e. În viitor, poate fi afișat într-o casetă de dialog - e.message.
      • Plasați mesajul final, care trebuie să fie scos indiferent dacă există o eroare în cod, într-un bloc final:

        în final ( alert(„acțiuni finale”); ) alert(„după”);

      Important: Dacă încă există o eroare, atunci interpretul, după ce a tipărit-o în exemplul nostru, va proceda la executarea blocului catch și apoi în cele din urmă (din engleză „completion”, „finally”), care va fi întotdeauna executat, indiferent dacă a fost sau nu o eroare. Chiar dacă există o eroare în blocul catch.


      Blocul final din construct este opțional. Sarcina Js 3_17.

    3. Urmați exemplul de mai sus cu următoarele modificări:
    4. Eliminați blocul final și monitorizați execuția codului.
    5. Înlocuiți operatorul eronat cu unul fără erori și vedeți care este rezultatul.

      Relua:

      Lecția a acoperit următorii operatori și constructe ale limbajului javascript:

    6. Instrucțiuni condiționale Javascript:
    7. declarația dacă
    8. Atribuire condiționată (operator ternar)
    9. declarație switch

    10. Operatori de buclă:
    11. pentru buclă
    12. buclă while
    13. face...while bucla
    14. Pentru... în buclă
      Sarcina finală Js 3_18.

      1. Creează un joc pentru doi: 1 la 100 Programul îi cere primului jucător să introducă un număr de la (al doilea jucător nu vede numărul introdus). Al doilea jucător este apoi rugat să ghicească numărul introdus. Un mesaj este afișat ca răspuns"putine" sau"multe"
      2. in functie de raspunsul introdus. Dacă jucătorul ghicește corect, este afișată o felicitare. Dacă nu ghicește, jocul continuă (până când numărul este ghicit efectiv).


      Întrebări pentru autocontrol:

      1. Numărați numărul de încercări și obțineți un rezultat când numărul este rezolvat.
      2. Când este potrivit să folosiți o buclă For In? Dați un exemplu de utilizare a acestuia.
      3. Care este scopul declarației try..catch?

      Explicați scopul fiecărui bloc de instrucțiuni try..catch.

      JavaScript are o construcție condiționată care afectează execuția programului. Dacă (în engleză dacă) ceva există, ceva este adevărat, atunci fă un lucru, altfel (în engleză altfel) - fă altceva.

      declarația dacă

      Să ne uităm imediat la modul în care funcționează declarația if este simplă și nu necesită multe explicații.

      Dacă (condiție) (cod de executat dacă condiția este adevărată)

      Este simplu: dacă condiția este adevărată, atunci se execută codul din blocul (...).

      Var cifra = 4; if (cifra == 4) ( document.write ("Valoarea cifrei variabilei este 4."); )

      Var cifra = 4; dacă (adevărat) (​document.write(„Condiția este adevărată.”); )

      declarație else

      Instrucțiunea else poate fi folosită împreună cu instrucțiunea if. Este tradus ca „altfel” și specifică un cod alternativ.

      Var cifra = 4; dacă (cifră

      Acordați atenție ortografiei diferite a acoladelor din acest exemplu pentru afirmațiile if și else. Nu este deloc necesar să o scrieți în acest fel ambele sintaxe sunt corecte.

      După declarația else poate exista o nouă instrucțiune if. Acest lucru va verifica mai multe condiții.

      Var cifra = 4; dacă (cifră

      JavaScript nu are o declarație elseif (într-un cuvânt) așa cum are PHP.

      Dacă trebuie să executați o singură instrucțiune, atunci blocați acolade (...) nu sunt necesare. În exemplul nostru, nu trebuie să le scrieți:

      Var cifra = 4; dacă (cifră

      False în JavaScript

      Declarația if (condiție) evaluează și convertește condiția (expresia) din paranteze într-un tip boolean (adevărat sau fals).

      Să repetăm ​​că există o minciună în JavaScript.

      • Numărul 0 (zero).
      • Șir gol „”.
      • Valoare booleană falsă :)
      • Valoarea este nulă.
      • Valoarea este nedefinită.
      • Valoarea este NaN (Nu este un număr).

      Orice altceva este adevărat.

      Câteva erori posibile:

      Dacă ("fals") document.write ("Acesta este adevărat.
      "); if (false) document.write("Acesta este adevărat.

      ");

      Aici trebuie să distingeți șirul „fals” (închis între ghilimele) de valoarea booleană false.

      Dacă (" ") document.write("Acesta este adevărat.
      "); else document.write("Acesta este fals.
      ");

      Aici trebuie să distingeți linia „ ” (cu un spațiu în interior) de linia goală „”. Un spațiu în interiorul unui șir îl face să nu fie gol, ci să conțină un caracter. Pentru interpret, litera sau spațiul nu contează - un caracter este un caracter.

      Alte condiționale în JavaScript

      • Construcție de comutare JavaScript.
      • Semn de întrebare al operatorului

      Declarații condiționale

      Instrucțiunile condiționate vă permit să săriți sau să executați alte instrucțiuni în funcție de valoarea unei expresii specificate. Aceste afirmații sunt puncte de decizie într-un program și sunt uneori numite și operatorii de sucursale.

      Dacă vă imaginați că un program este un drum, iar interpretul JavaScript este un călător care merge de-a lungul acestuia, atunci declarațiile condiționate pot fi considerate ca o răscruce în care codul programului se ramifică în două sau mai multe drumuri, iar la astfel de răscruce, interpretul trebuie să aleagă care drum de urmat.

      declarație dacă/altfel

      Declarația if este o instrucțiune de control de bază care permite interpretului JavaScript să ia decizii sau să execute mai precis instrucțiuni, pe baza condițiilor. Declarația if are două forme. Primul:

      if (expresie) enunţ

      În această formă, expresia este mai întâi evaluată. Dacă rezultatul obținut este adevărat, atunci instrucțiunea este executată. Dacă expresia returnează false, atunci instrucțiunea nu este executată. De exemplu:

      If (username == null) // Dacă variabila nume de utilizator este nulă sau nedefinită username = "Alex"; // definesc-o

      Rețineți că parantezele din jurul unei expresii condiționate sunt o parte obligatorie a sintaxei instrucțiunii if.

      A doua formă a instrucțiunii if introduce o clauză else care este executată atunci când expresia este evaluată ca false. Sintaxa sa este:

      if (expresie) statement1 else statement2

      Acest formular execută declarația1 dacă expresia este evaluată ca adevărată și instrucțiunea2 dacă expresia este evaluată ca fals. De exemplu:

      If (n == 1) console.log("1 mesaj nou primit."); else console.log("Am primit " + n + " mesaje noi.");

      else if declarație

      Instrucțiunea if/else evaluează valoarea unei expresii și execută una sau alta bucată de cod de program, în funcție de rezultat. Dar ce se întâmplă dacă trebuie să executați unul dintre multele fragmente? O posibilă modalitate de a face acest lucru este să utilizați o declarație else if. În mod formal, nu este un operator JavaScript independent; Acesta este doar un stil obișnuit de programare de utilizare a unei declarații repetate if/else:

      If (n == 1) ( // Executați blocul 1 ) else if (n == 2) ( // Executați blocul 2 ) else if (n == 3) ( // Executați blocul 3 ) else ( // Dacă nici unul una dintre instrucțiunile else anterioare nu a fost executată, executați blocul 4)

      Nu este nimic special la acest fragment. Este pur și simplu o secvență de instrucțiuni if, în care fiecare instrucțiune if face parte din clauza else a instrucțiunii anterioare.

      declarație switch

      O instrucțiune if creează o ramură în fluxul programului, iar ramificarea cu mai multe stări poate fi implementată folosind mai multe instrucțiuni else if. Cu toate acestea, aceasta nu este întotdeauna cea mai bună soluție, mai ales dacă toate ramurile depind de valoarea aceleiași expresii. În acest caz, este o risipă să reevaluezi aceeași expresie în mai multe instrucțiuni if.

      Declarația switch este concepută special pentru astfel de situații. Cuvântul cheie switch este urmat de o expresie între paranteze și de un bloc de cod între acolade:

      comutare (expresie) (instrucțiuni)

      Cu toate acestea, sintaxa completă a unei instrucțiuni switch este mai complexă decât se arată aici. Diverse locuri din bloc sunt marcate cu un cuvânt cheie caz urmată de o expresie și un caracter două puncte.

      Când este executată o instrucțiune switch, evaluează valoarea expresiei și apoi caută o etichetă de caz care se potrivește cu acea valoare (potrivirea este determinată folosind operatorul de identitate ===). Dacă eticheta este găsită, blocul de cod este executat, începând cu prima instrucțiune care urmează etichetei case. Dacă nu este găsită o etichetă de caz cu o valoare potrivită, execuția începe cu prima instrucțiune care urmează etichetei speciale implicit:. Dacă eticheta implicită: lipsește, întregul bloc de instrucțiuni switch este omis.

      Funcționarea declarației switch este dificil de explicat în cuvinte, explicația este mult mai clară cu un exemplu. Următoarea instrucțiune switch este echivalentă cu instrucțiunile repetate if/else prezentate în exemplul anterior:

      Switch(n) ( cazul 1: // Executat dacă n === 1 // Execută blocul 1 întrerupere; // Opreste aici cazul 2: // Execut dacă n === 2 // Execută blocul 2 întrerupere; // Stop aici cazul 3: // Executare if n === 3 // Execut blocul 3 break // Opriți aici implicit: // Dacă totul eșuează... // Executați blocul 4;

      Acordați atenție cuvântului cheie pauză la sfârşitul fiecărui bloc de caz. Instrucțiunea break face ca controlul să fie transferat la sfârșitul instrucțiunii switch și execuția următoarelor instrucțiuni să continue. Declarațiile Case dintr-o instrucțiune switch specifică doar punctul de pornire al codului programului care urmează să fie executat, dar nu specifică niciun punct final.

      Dacă nu există instrucțiuni break, instrucțiunea switch va începe executarea blocului de cod cu eticheta case corespunzătoare valorii expresiei și va continua executarea instrucțiunilor până când ajunge la sfârșitul blocului. În cazuri rare, acest lucru este util pentru scrierea codului care trece de la o etichetă de caz la alta, dar în 99% din cazuri ar trebui să încheiați cu atenție fiecare bloc de caz cu o instrucțiune break. (Când utilizați un comutator în interiorul unei funcții, puteți utiliza o instrucțiune return în loc de o pauză. Ambele instrucțiuni servesc pentru a termina instrucțiunea switch și pentru a împiedica trecerea la următoarea etichetă de caz.)

      Mai jos este un exemplu mai practic de utilizare a instrucțiunii switch, care convertește o valoare într-un șir într-un mod care depinde de tipul valorii:

      Funcția convert(x) ( switch(typeof x) ( // Convertește un număr într-un număr întreg hexazecimal „număr”: return x.toString(16); // Returnează un șir între ghilimele case „șir”: return „"" + x + """; // Orice alt tip este convertit în modul obișnuit implicit: return x.toString(); ) ) console.log(convert(1067)); // Rezultatul "42b"

      Rețineți că în cele două exemple anterioare, cuvintele cheie case au fost urmate de numere sau literale șir. Acesta este modul în care instrucțiunea switch este folosită cel mai des în practică, dar standardul ECMAScript vă permite să specificați expresii arbitrare după caz.

      Instrucțiunea switch evaluează mai întâi expresia după cuvântul cheie switch și apoi expresiile case în ordinea în care sunt specificate, până când se găsește o valoare potrivită. Faptul unei potriviri este determinat folosind operatorul de identitate === mai degrabă decât operatorul de egalitate ==, astfel încât expresiile trebuie să se potrivească fără nicio conversie de tip.

      Deoarece nu toate expresiile case sunt evaluate de fiecare dată când este executată o instrucțiune switch, ar trebui să evitați să utilizați expresii case care au efecte secundare, cum ar fi apelurile de funcții și atribuirile. Cel mai sigur este să limitați expresiile de caz la expresii constante.

      După cum sa explicat mai devreme, dacă nicio expresie case nu se potrivește cu o instrucțiune switch, instrucțiunea switch începe să execute instrucțiunea etichetată implicit:. Dacă eticheta implicită: lipsește, corpul instrucțiunii switch este omis complet. Rețineți că în exemplele anterioare, eticheta implicită: este inclusă la sfârșitul corpului instrucțiunii switch, după toate etichetele case. Acesta este un loc logic și obișnuit pentru acesta, dar de fapt poate fi localizat oriunde într-o instrucțiune switch.