Operatori i kushtëzuar Javascript. Deklaratat e kushtëzuara në Javascript - Ndërtimi IF-ELSE - Kushtet në Javascript - Bazat. Kushte të tjera në JavaScript

Udhëzimet e kontrollit janë udhëzime që kontrollojnë ekzekutimin e kodit të programit. Në mënyrë tipike, kodi i ekzekutueshëm në një udhëzim kontrolli quhet trupi i këtij udhëzimi.

Udhëzimet e kontrollit mund të vendosen ose të përdoren brenda udhëzimeve të tjera të kontrollit.

Deklaratat e kushtëzuara

Si parazgjedhje, interpretuesi JavaScript ekzekuton udhëzime njëra pas tjetrës me renditjen që ato shfaqen në kodin burimor. Në rastet kur ekzekutimi ose mosekzekutimi i disa udhëzimeve duhet të varet nga përmbushja ose mos-përmbushja e një kushti të caktuar, përdoren deklaratat e kushtëzuara.

Nëse deklarata

Deklarata if ka dy forma. Sintaksa për formën e parë është:

Shprehja në kllapa quhet kushti i ekzekutimit nëse deklarata ose kushtëzuar shkurtimisht. Së pari vlerësohet vlera e shprehjes. Vlera rezultuese, nëse është e nevojshme, shndërrohet në mënyrë implicite në një tip boolean. Nëse shprehja vlerëson si e vërtetë, atëherë deklarata ekzekutohet. Nëse shprehja kthehet false, atëherë deklarata nuk ekzekutohet:

Nëse alarmi (i vërtetë) ("I përfunduar!"); nëse alarmi (i rremë) ("Nuk do të ekzekutohet!");

Sintaksa if ju lejon të ekzekutoni vetëm një deklaratë, por nëse keni nevojë të ekzekutoni më shumë se një deklaratë, duhet të përdorni një deklaratë të përbërë:

Nëse (e vërtetë) (var str \u003d "Përshëndetje!"; Alert (str);)

Sintaksa e formës së dytë:

Deklarata e (shprehjes); deklaratë tjetër;

Fjala kyçe tjetër ju lejon të shtoni një deklaratë që do të ekzekutohet nëse kushti është i gabuar:

Paralajmërim (i rremë) ("Nuk do të ekzekutohet"); tjetër alarm ("Ekzekuto");

Siç është përmendur tashmë, udhëzimet e kontrollit mund të vendosen, gjë që ju lejon të krijoni konstruktet e mëposhtme:

Var num \u003d 2; nëse (num \u003d\u003d 1) (alarm ("vlera num:" + num);) tjetër nëse (num \u003d\u003d 2) (alarm ("vlera num:" + num);) tjetër (alarm ("Nuk e di një numër të tillë ! ");)

Nuk ka asgjë të veçantë në lidhje me këtë kod. Simplyshtë thjesht një sekuencë e pohimeve, ku secila if pohimi është pjesë e tjetrës së pohimit if të mëparshëm. Në shikim të parë, kjo formë e shënimit mund të mos duket plotësisht e qartë, prandaj merrni parasysh një formë ekuivalente sintaksore që tregon folezimin e pohimeve:

Var num \u003d 2; nëse (num \u003d\u003d 1) (alarm ("vlera num:" + num);) tjetër (nëse (num \u003d\u003d 2) (alarm ("vlera num:" + num);) tjetër (alarm ("Nuk e di këtë numra! ");))

Në këtë shembull, ne së pari deklarojmë katër variabla duke përdorur fjalën kyçe var, dhe menjëherë u caktojmë atyre vlera numerike. Pastaj, duke përdorur operatorët e rritjes dhe zbritjes, ne ndryshojmë vlerat e numrave. Informacioni shfaqet duke përdorur funksionin Jehona (shih artikullin ""). Për të mos shkruar edhe një herë emrin e objektit, unë përdora konstruksionin me ().

Operatorët logjikë

Operatorët logjikë përdoren kur kontrollohet gjendja, në mënyrë që të mos përsëris, unë do të bëj një shkurtim: operandi i majtë është LO, dhe operandi i djathtë është P.O.

  • && - Logjike "DHE"
  • || - "OSE"
  • ! - "JO"
  • \u003e - L.O. më shumë P.O.
  • \u003e \u003d - L.O. është më e madhe ose e barabartë me P.O.
  • < - Л.О. меньше П.О.
  • <= - Л.О. меньше или равен П.О.
  • \u003d\u003d - L.O. e barabartë me P.O.
  • ! \u003d - L.O. nuk është e barabartë me P.O.
  • | \u003d - L.O. e barabartë me veten OSE P.O.
  • & \u003d - L.O. e barabartë me veten time dhe P.O.
  • ^ \u003d - EKSKLUZIVE OSE

Tani merrni parasysh shkrimin e mëposhtëm:

//***************************************** // operacionet logjike // logik_if_else.js //***************************************** var a \u003d 10, b \u003d 100, WshShell, titulli, msg1, msg2, msg3, msg4, vbInformation \u003d 64; // Krijoni një shembull të klasës WScript.Shell WshShell \u003d WScript.CreateObject ("WScript.Shell"); titulli \u003d "Puna me Deklaratën e Kushtëzuar të IF ELSE JS"; me (WshShell) (nëse (a\u003e \u003d 5 && a<= 100 ) //истина msg1 = "TRUE" ; else msg1 = "FALSE" ; Popup (msg1, 5 , title, vbInformation) ; if (a>\u003d 5 || b \u003d\u003d 100) // e vërtetë msg2 \u003d "E VRTET"; else msg2 \u003d "E GABUAR"; Dritare (msg2, 5, titulli, informacioni vb); // pohim i kushtëzuar js nëse tjetër if (! a) // false msg3 \u003d "E VRTET"; else msg3 \u003d "E GABUAR"; Dritare (msg3, 5, titulli, informacioni vb); nëse (a & \u003d 100) // false msg4 \u003d "E VRTET"; else msg4 \u003d "E GABUAR"; Dritare (msg4, 5, titulli, informacioni vb); )

Ashtu si në skenarin e mëparshëm, këtu kam përdorur konstruksionin me për të shkurtuar kodin e programit. Sidoqoftë, për të shfaqur informacione, ne përdorëm funksionin Shfaqem (shih artikullin ""). Si rezultat, kutitë e dialogut do të mbyllen automatikisht pas disa sekondash. Ju lutemi vini re se në këtë shembull ne nuk kemi përdorur mbajtësa kaçurrelash. në deklaratën e kushtëzuar js, ato janë të rëndësishme vetëm kur duhet të ekzekutoni më shumë se një rresht të kodit, por disa.

Së fundmi, le të shohim një shembull praktik siç është zgjidhja e një ekuacioni kuadratik:

// Zgjidhja e një ekuacioni kuadratik // uravnenije_if_else.js // *********************************************************** var a, b, c, d, x, x1, x2; // Deklaroni ndryshoret a \u003d - 2; b \u003d 6; c \u003d 20; // Kërkimi i diskriminuesit d \u003d Matematikë .pushë (b, 2) - 4 * a * c; nëse (d \u003d\u003d 0) (x \u003d b / (2 * a); msg \u003d "Ekuacioni ka një zgjidhje, x është saktësisht" + x) tjetër (nëse (d\u003e 0) (x1 \u003d (- b + Matematikë .sqrt (d)) / (2 * a); x2 \u003d (- b - Matematikë .sqrt (d)) / (2 * a) ; msg \u003d "Ekuacioni ka dy zgjidhje \\ n x1 saktësisht" + x1 + " \\ n x2 saktësisht " + x2; // pohim i kushtëzuar nëse tjetër js ) else msg \u003d "Pa zgjidhje"; ) WScript.Echo (msg);

var a \u003d 10; var b \u003d (a\u003e 1)? 100: 200; alarm (b);

Nëse gjendja a\u003e 1 është e vërtetë, atëherë ndryshorja b caktojë vlerën 100 , përndryshe variablit b i është caktuar vlera 200 .

Detyra Js 3_4. Përfundimi i kodit: 3 variabla lokale deklarohen duke përdorur fjalën kyçe var. Necessaryshtë e nevojshme të caktohet vlera e operatorit ternar vijues në ndryshoren max: nëse a është më e madhe se b, atëherë kthejmë a, përndryshe kthejmë b.
Copëza e kodit:

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


Pyetjet për vetëkontroll:

  1. Cila është sintaksa për operatorin ternary?
  2. Sa argumente ka operatori ternar?

Ndërroni operatorin në javaScript - ndërroni

Deklarata e ndërprerësit javascript përdoret për të testuar një ndryshore për vlera të shumëfishta:

Sintaksë:

ndërprerësi (ndryshorja ose shprehja) (opsioni i rastit 1: // .. bllok deklarate .. ndërprerje opsion 2: // .. bllok deklarate .. prishet parazgjedhur: // .. bllok deklarate ..)

Vlera e një ndryshoreje ose shprehjeje kontrollohet: në secilën rast kontrollohet njëra nga vlerat, në rastin e një vlere të përshtatshme, një ose një bllok tjetër i pohimeve që korrespondojnë me të dhëna rast.

Blloku që fillon me parazgjedhjen e fjalës së shërbimit mund të hiqet. Deklaratat e bllokut do të ekzekutohen nëse asnjëra nga vlerat e listuara nuk është fare rast nuk përshtatet.

E rëndësishme: Deklarata e ndërprerjes kërkohet pas secilës vlerë të konsideruar të ndryshores (pas secilës rast); nëse nuk e përdorni, atëherë do të shfaqen të gjithë operatorët më poshtë

Krahasoni me operatorin NESE:

var a \u003d 2; ndërprerësi (a) (rasti 0: // if (a \u003d\u003d\u003d 0) rasti 1: // if (a \u003d\u003d\u003d 0) alarm ("Zero ose një"); // pastaj dalja ... break; case 2: // nëse (a \u003d\u003d\u003d 2) sinjalizim ("Dy"); // atëherë shfaq ... pushim; parazgjedhur: // tjetër alarm ("Shumë"); // ndryshe shfaq ...)

Si mund të grupoj opsione të shumta?

Për të ekzekutuar të njëjtët operatorë, është e mundur të grupohen disa rast... Si në shembullin e mësipërm:

Rasti 0: rasti 1: alarm ("Zero ose një"); pushim; ...

Me a \u003d 0 dhe a \u003d 1, ekzekutohet e njëjta deklaratë: alarm ("Zero ose një");

Shembulli 4: Nxisni përdoruesin të futë një ngjyrë. Shfaqni përkthimin anglisht të ngjyrës së futur. Për ngjyrën "blu" dhe "blu" ktheje të njëjtën vlerë.


✍ Zgjidhja:
  • Krijoni një faqe në internet me skelet dhe etiketë HTML skenari.
  • Inicimi i një ndryshoreje ngjyrë
  • var ngjyra \u003d prompt ("Çfarë ngjyre?");

    var ngjyra \u003d prompt ("Çfarë ngjyre?");

  • Kontrolloni vlerën e një ndryshoreje duke përdorur konstruktin ndërroj, rezultatet për secilën vlerë - përkthimi përkatës:
  • ndërprerësi (ngjyra) (rasti "i kuq": alarm ("i kuq"); pushim; rasti "jeshil": alarm ("jeshil"); pushim; // ...

    Nëse ndryshorja ngjyrëka vlerën "e kuqe", pastaj shfaqni përkthimin në dritaren modale - "e kuqe" dhe dilni nga konstruksioni (pushim;). Nëse ndryshorja ngjyrë ka vlerën "jeshile", pastaj shfaqni përkthimin në dritaren modale - "jeshile" dhe dilni nga konstruksioni (pushim;).

  • Për lulet "blu" dhe "blu" bëj grupimin:
  • // ... rasti "blu": rasti "blu": vigjilent ("blu"); pushim; // ...

    Nëse ndryshorja ngjyrëështë blu ose i ndryshueshëm ngjyrëka vlerën "blu", pastaj shfaqni përkthimin në dritaren modale - "blu" dhe dilni nga konstruksioni (pushim;).

  • Organizoni prodhimin për ato ngjyra që nuk sigurohen nga programi:
  • // ... parazgjedhur: alarm ( "ne nuk kemi asnjë informacion mbi këtë ngjyrë")) // ndërprerësi

    // ... parazgjedhur: alarm ("y nuk kemi informacion për këtë ngjyrë")) // ndërprerësi

  • Testoni skenarin në një shfletues.

Detyra Js 3_6. Gjeni dhe rregulloni gabimet në fragmentin e kodit vijues:

14 15 16 17 numri var \u003d prompt ( "Vendos numrin 1 ose 2:"); ndërprerësi (numri) (rasti "1" (dokument.write ("Një");); pushim; rasti "2" (document.write ("Dy");); break; default (document.write ( "Keni futur një vlerë tjetër nga 1 dhe 2") ; } ; }

var number \u003d prompt ("Vendos numrin 1 ose 2:"); ndërprerësi (numri) (rasti "1" (dokument.write ("Një");); pushim; rasti "2" (document.write ("Dy");); break; default (document.write ("Ju futët një vlerë tjetër nga 1 dhe 2 "););)


Detyra Js 3_7. Çfarë do të shfaqet në ekran kur ekzekutohet kodi i mëposhtëm?:

1 2 3 4 5 6 7 8 9 10 11 12 13 vlera var \u003d "2"; ndërprerësi (vlera) (rasti "1": rasti "2": rasti "3": document.write ("Përshëndetje"); pushim; rasti "4": rasti "5": document.write ("Bota"); parazgjedhur: document.write ("Gabim");)

vlera var \u003d "2"; ndërprerësi (vlera) (rasti "1": rasti "2": rasti "3": document.write ("Përshëndetje"); pushim; rasti "4": rasti "5": document.write ("Bota"); parazgjedhur: document.write ("Gabim");)


Detyra Js 3_8. Përdoruesit do t'i kërkohet një numër - numri i sorrave në degë. Në varësi të numrit të futur (jo më shumë se 10), shfaqni mesazhin: - Ulur në një degë 1 sorrë - Ulet në një degë 4 sorra - Ulet në një degë 10 sorra

  1. Në varësi të numrit të futur, fundi i fjalës ndryshon "sorrë".
  2. Për të kontrolluar, përdorni deklaratën Switch javascript.
  3. Ruani këtë faqe në dosjen e rezultateve (do të jetë e dobishme për punë të mëtejshme).


Pyetjet për vetëkontroll:

  1. Kur këshillohet të përdoret konstruksioni si një operator i kushtëzuar kaloni?
  2. Për çfarë shërben blloku i parazgjedhur? kaloni?
  3. A është e detyrueshme të përdoret deklarata e ndërprerjes në ndërtim kaloni?
  4. Si kryhet grupimi për variante të shumta vlerash në një operator kaloni?

Operatorët ciklikë të gjuhës javaScript - Për

Sintaksë:

for (vlera fillestare e njehsorit; kushti; rritja e numëruesit) (//..bllokimi i deklaratave ..)

E rëndësishme: Një lak në javascript përdoret kur dihet paraprakisht se sa herë duhet të përsëriten veprimet ciklike (sa përsëritje lak)

  • Një shprehje e caktimit përdoret si vlera fillestare e njehsorit të përsëritjes: për shembull, i \u003d 0 - numëruesi i lakut fillon nga zero:
  • for (var i \u003d 0; kushti; rritja e kundërveprimit) (//..bllokimi i deklaratave ..)

  • Si një rritje counter, tregohet hapi me të cilin duhet të rritet counter: për shembull, tregon se çdo përsëritje e lakut do të shoqërohet nga rritja e tij me 1 :
  • për (var i \u003d 0; kushti; i ++) (//..bllokimi i deklaratave ..)

  • Kushti i lakut është vlera përfundimtare e njehsorit: për shembull, i10, ndalon lakun:
  • për (var i \u003d 0; i<10; i++) { //..блок операторов.. }

Le të shohim një shembull të përdorimit të një loop for në javascript:

Shembulli 5: Shtyp një sekuencë numrash 0 1 2 3 ... 9 , secila shifër në një rresht të ri. 0 1 2 ... 8 9


✍ Zgjidhja:
  • Për të shfaqur një sekuencë numrash, do të përdorim numëruesin e lakit for, i cili duhet të ndryshojë vlerën e tij nga 0 para 9 sipas sekuencës.
  • Prandaj, për vlera fillestare e njehsorit të ciklit vendosni vlerën në 0 ; si kushtet e ciklit vendosni vlerën përfundimtare - ii \u003d 9; hapi kundër duhet të jetë 1 (i ++) meqenëse ndryshimi midis anëtarëve të sekuencës është një:
  • për (var i \u003d 0; i<10; i++) { document.write(i+"
    "); }

    Në shembull, vlerat e njehsorit të lakut shfaqen në ekran, pasi rritja e njehsorit i ++, përkatësisht, do të shfaqet në ekran 0 1 2 3 ... 9 , me secilën shifër në një vijë të re (etiketë
    ).

  • Testoni skenarin në një shfletues.

Detyra Js 3_9. 1 para 15 .

  1. Përdorni një numërues loop si një rend të numrave për.
  2. Për një ndryshore mbledhëse, përdorni identifikuesin e ndryshores shuma.

Copëza e kodit:

Për (var i \u003d ...; ...; ...) (shuma \u003d shuma + ...;) ...

Deklaratat e daljes së lakut pushim dhe vazhdoj në javaScript. Operatori Dalja

Deklarata e ndërprerjes ndërpret ekzekutimin e të gjithë trupit të lakut, d.m.th. shpërthen nga cikli në javaScript.

Ndërsa deklarata vazhdon ndërpret ekzekutimin e përsëritjes së lakut aktual, por, në të njëjtën kohë, vazhdon ekzekutimin e lakut nga përsëritja tjetër.

Le të shqyrtojmë funksionimin e ndërprerjes dhe të vazhdojmë deklaratat duke përdorur një shembull:

Shembull: Analizoni algoritmin e copës së kodit. Çfarë do të shfaqet?

Copëza e kodit:

1 2 3 4 5 6 për (var i \u003d 0; i< 10 ; i++ ) { if (i== 4 ) continue ; document.write (i+ "
"); nëse (i \u003d\u003d 8) prishet;)

për (var i \u003d 0; i<10;i++) { if (i==4) continue; document.write(i+"
"); nëse (i \u003d\u003d 8) prishet;)


✍ Zgjidhja:
  • Linja e tretë e shembullit përmban një kusht për shkak të së cilës shifra 4 nuk do të shfaqet: operatori vazhdojdo të vazhdojë në përsëritjen tjetër të lakut pa përfunduar atë aktual.
  • Në rreshtin nr. 5, laku del, por numri 8 do të shfaqet, pasi deklarata e daljes vjen para kushtit (në rreshtin e 4-të). Duke u takuar pushim, përkthyesi do ta përfundojë lakun.
  • Kështu që ekrani do të tregojë: 0 1 2 3 5 6 7 8 - secila shifër në një rresht të ri.

Detyra Js 3_10. Dalja e shumës së të gjithë numrave të plotë nga 1 para 15 , duke përjashtuar nga numri i përgjithshëm 5 dhe 7 .

Deklarata e daljes

Gjuha javasctipt siguron një operator dalje nga kodi i programit - operatori dalës.
Më shpesh, operatori përdoret për të eleminuar gabimin e hyrjes së përdoruesit.


Le të shqyrtojmë një shembull:

Shembulli 6: Nxitni përdoruesin të futë një numër. Nëse nuk futet një numër, atëherë shfaqni mesazhin "Të duhet një numër!" dhe ndalo programin.


✍ Zgjidhja:
  • Inicimi i një ndryshoreje numri vlera e futur nga përdoruesi në modal:
  • var var \u003d prompt ("Vendos një numër");

  • Duke përdorur funksionin parseInt për të kthyer një varg në një numër të plotë, kontrolloni nëse vlera e futur është një numër:
  • numri \u003d analizimiInt (numri); // do të kthejë NaN - jo një numër

    Nëse nuk futet një numër, funksioni do të kthejë vlerën NaN (nga anglishtja). jo një numër - jo një numër).

  • Kontrolloni vlerën e ndryshores numri duke përdorur funksionin isNaN:
  • x \u003d ështëNaN (numri); // do të kthehet e vërtetë nëse vlera nuk është numerike

    Funksioni IsNaN kthen vlerën e vertete në rast se ndryshorja nuk është numër

  • Nga rregulli i "genjeshtrave" aranzhoni për të kontrolluar vlerën e ndryshores x... Nëse vlera nuk është numerike, shtypni një shënim përkatës dhe dilni nga programi:
  • nëse (x) (alarm ("Kërkohet një numër!"); dalje; // dalje nga programi)

  • Për të vazhduar programin (nëse vlera e futur ishte një numër), shfaqni dritaren vijuese me një kërkesë të hyrjes:
  • alarm ("Vendos numrin e dytë"); // nëse vendos një jo-numër, deklarata nuk do të ekzekutohet

  • Testoni skenarin në një shfletues.

Pyetjet për vetëkontroll:

  1. Renditni tre parametra të lakut për dhe të shpjegojë qëllimin e tyre.
  2. Cilët operatorë kanë për qëllim të dalin nga cikli dhe ta ndërpresin atë? Jepni shembuj të përdorimit të tyre.
  3. Për çfarë shërben operatori dalje?

A është e mundur që të ketë numërues të shumtë në një P oneR?

Një punë interesante me lak for është e mundur duke përdorur njëkohësisht dy sportele në një cikël.
Le të shqyrtojmë një shembull:

Shembulli 7: Duke përdorur skriptin, shtypni dyshet e mëposhtme me vlerë të ndryshueshme në tre rreshta: i \u003d 0 j \u003d 2 i \u003d 1 j \u003d 3 i \u003d 2 j \u003d 4


✍ Zgjidhja:
  • Në lak for, organizoni dy sportele: numëruesi i për të nxjerrë sekuencën 0 1 2 , counter j për nxjerrjen e sekuencës 2 3 4 :
  • 1 2 3 për (i \u003d 0, j \u003d 2; i< 10 , j< 5 ; i++, j++ ) { }

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

    Secili prej tre parametrave të lakut for tani ka dy vlera, të cilat renditen presje të ndara (për shembull, parametri i parë me dy vlera: i \u003d 0, j \u003d 2). Vetë parametrat renditen pikëpresje e ndarë(;).

  • Për dalje në secilën linjë përdorni etiketën
    :
  • 1 2 3 4 për (i \u003d 0, j \u003d 2; i< 10 , j< 5 ; i++, j++ ) { document.write ("
    i \u003d ", i," j \u003d ", j);)

    për (i \u003d 0, j \u003d 2; i<10, j<5; i++, j++) { document.write("
    i \u003d ", i," j \u003d ", j);)

Brezi gjatë fluturimit: si është?

Para se të bëni detyrën tjetër, merrni parasysh një shembull duke ndërtuar në mënyrë dinamike faqen HTML duke përdorur javascript.

Shembulli 8:

  • Necessaryshtë e domosdoshme të gjeneroni në mënyrë dinamike listat me gunga dhe të numëruara në faqen në internet në varësi të të dhënave të futura nga përdoruesi: nxisni përdoruesin të hyjë pamja e listës (i numëruar (numri 1) ose i etiketuar (numri 2)) dhe më pas numri i artikujve të listës.
  • Në varësi të përgjigjes, shfaqni etiketat ose të një liste me pika ose me numër me numrin e kërkuar të artikujve.
  • Nëse futet një lloj liste inekzistente, atëherë shfaqni mesazhin "Ju lutemi shkruani llojin e saktë!" dhe dilni nga programi ().

Le të kujtojmë etiketat:
etiketat e listave të numëruara:

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

etiketat e listave me plumb:

var listType \u003d prompt ("Fut" 1 "për një listë me pika," 2 "për një listë të numëruar");

  • Kontrolloni vlerën e futur: për një listë të numëruar (numri 1) nxirrni etiketën
      , për etiketën e shënuar (numri 2) -
        ... Nëse futet një vlerë tjetër, shtyp një shënim dhe përfundo programin:

            ") tjetër (alarm (" Vendos llojin e duhur "); dil;)

          • Inicimi i një ndryshoreje kolvo vlera e futur nga përdoruesi në modal:
          • var kolvo \u003d prompt ("Vendos numrin e artikujve");

          • Për të kthyer një vlerë të vargut në një vlerë numerike, përdorni funksionin parseInt:
          • për (var i \u003d 1; i<=kolvo; i++) document.write("");

          • Meqenëse listat janë të mbyllura me etiketat përkatëse, varësisht nga lloji i listës, shtypni etiketat mbyllëse:
          • if (listType \u003d\u003d "1") document.write ("") tjetër nëse (listType \u003d\u003d" 2 ") dokument.write (shkruaj)" ) ;

            if (listType \u003d\u003d "1") document.write ("

        ") tjetër nëse (listType \u003d\u003d" 2 ") dokument.write (shkruaj)
      ");

    1. Testoni skenarin në një shfletues.
    2. Detyra Js 3_11.
      Shkruaj një skenar që tregon etiketat të dhëna(kontrollet) e llojeve të ndryshme, në varësi të shifrës së futur:

      1 - fusha e tekstit,
      2 - butoni,
      3 - radio(kaloni).

      Duhet të kërkohet edhe numri i etiketave të shfaqura.

      Le të kujtojmë etiketat:

      Për 1 - fushë teksti: Për butonin 2 -: Për 3 - radio:

      Shembulli i daljes:

      Detyra Js 3_12. Vizatoni një tabelë 9x9 duke përdorur javascript për sythe. "Vizato" bordi duhet të jetë etiketa html për tabelën:

      Le të kujtojmë etiketat:

      <kufiri i tabelës \u003d "1" gjerësia \u003d "30%"\u003e <tr\u003e\u003e <td\u003e-</ td\u003e -</ td\u003e </ tr\u003e </ tabela\u003e

      --

      • Për të vizatuar 9 rreshta, duhet të organizoni një lak të jashtëm për një numërues i.
      • Për të vizatuar 9 qeliza në secilën linjë, duhet të organizoni një lak të brendshëm (të mbivendosur) me një numërues j.
      • Përdorni metodën document.write për të dhënë etiketat e qelizave dhe linjave.

      Rezultati:

      Për më tepër:

      1. Shtypni tabelën e shumëzimit në qelizat e tabelës duke përdorur numëruesit e lakut (i dhe j).
      2. Shfaq rreshtin e parë dhe kolonën e parë me një sfond të kuq (atributi i ngjyrës së qelizës së tabelës):
        <td bgcolor \u003d "e kuqe"\u003e-</ td\u003e

        -

      Rezultati:


      Pyetjet për vetëkontroll:

      1. Shpjegoni çfarë do të thotë ndërtim dinamik i faqes?
      2. Cila është konstrukti gjuhësor më i përdorur për ndërtimin dinamik të faqeve?

      Deklaratat ciklike të gjuhës javaScript - Ndërsa

      Sintaksa për deklaratën while është:

      ndërsa (kushti) (//..bllokimi i deklaratave ..);

      Shembull: Shfaq fuqitë e dy deri në 1000 (2, 4, 8 ... 512). Përdorni metodën e alarmit ()


      ✍ Zgjidhja:
      • Listimi i skenarit:
      • 1 2 3 4 5 var a \u003d 1; ndërsa (a< 1000 ) { a*= 2 ; alert(a) ; }

        var a \u003d 1; ndërsa (a< 1000){ a*=2; alert(a); }

        a * \u003d 2 used përdoret operacioni i caktimit të përbërë: produkti i kombinuar me caktimin, d.m.th. njëlloj si a \u003d a * 2

      • Testoni rezultatin në një shfletues.

      Si funksionojnë thëniet pushim dhe vazhdim në një lak kohor?

      Shembull:

      var a \u003d 1; ndërsa (a< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; }

      var a \u003d 1; ndërsa (a< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }

      Fuqitë e dy do të prodhohen në 128 përfshirëse, dhe vlera 64 do të anashkalohet. Ata. në kutitë e dialogut do të shohim: 2 4 8 16 32 128

      Detyra Js 3_13. Cilat vlera do të shfaqin copa e kodit vijues?

      numërues var \u003d 5; ndërsa (counter)< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }


      Detyra Js 3_14. Shkruaj kodin e ereksionit x në masën e yduke përdorur një lak while. Pyetni vlerat e ndryshueshme dhe nxirrni rezultatin duke përdorur alarmin ().

      Plotësoni kodin:

      1 2 3 4 5 6 7 8 9 var x \u003d ...; var y \u003d ...; counter \u003d 1; chislo \u003d x; ndërsa (...) (chislo \u003d x * ...; counter \u003d ...;) alarm (chislo);

      var x \u003d ...; var y \u003d ...; counter \u003d 1; chislo \u003d x; ndërsa (...) (chislo \u003d x * ...; counter \u003d ...;) alarm (chislo);

      A Korrigjo gabimin në programin e krijuar për të gjetur faktorialin e një numri:

      1 2 3 4 5 6 7 8 9 10 11 12 13 var counter \u003d prompt ("Vendos një numër"); faktori var \u003d 1; dokument.shkruaj ( "Faktoriali i numrit:" + counter + "! \u003d"); bëj (nëse (numëruesi \u003d\u003d 0) (faktorial \u003d 1; pushim;) faktorial \u003d faktorial / numërues; numërues \u003d kundër + 1;) ndërsa (numërues\u003e 0); dokument.shkruaj (faktorial);

      var counter \u003d prompt ("Vendos një numër"); faktori var \u003d 1; document.write ("Faktoriali i numrit:" + kundër + +!! \u003d "); bëj (nëse (numëruesi \u003d\u003d 0) (faktorial \u003d 1; pushim;) faktorial \u003d faktorial / kundër; counter \u003d kundër + 1;) ndërsa (kundër\u003e 0); dokument.shkruaj (faktorial);


      Detyra Js 3_16. Modifikoni programin për futjen e përdoruesit:

      Kërkoni një emër përdoruesi derisa përdoruesi të vendosë një emër në të vërtetë (d.m.th. fusha është plotësuar në të vërtetë dhe çelësi i anulimit nuk shtypet). Kur futet emri, atëherë nxirreni "Përshëndetje emër!"... dokument

      Si të gjeni gabime në javascript?

      Në disa raste, kodi në faqe nuk funksionon për ndonjë arsye. Ku ta gjeni gabimin? Në raste të tilla, mund të përdorni deklaratën try..catch.

      Deklarata try..catch përpiqet të ekzekutojë një pjesë të kodit, dhe nëse ka një gabim në kod, është e mundur të shfaqet një gabim në ekran.
      Gabimi ruhet në objektin e.message.

      Le të shqyrtojmë punën e operatorit duke përdorur një shembull:

      Shembull: shkruaj një deklaratë me një gabim në program. Kontrolloni për një gabim në kodin e dyshuar të gabuar: nëse ka një gabim në kod, shfaqni një mesazh "trajtimi i gabimit: emri i gabimit"... Pasi të keni kontrolluar operatorin e gabuar, pavarësisht nëse ka ndonjë gabim në kod, lëshoni mesazhin "veprimet e mbarimit"


      ✍ Zgjidhja:
      • Si një mesazh me një gabim, ne do të përdorim metodën prompt (), shkruar me një gabim - nxit ()... Mbyllni mesazhin e gabimit në një bllok provë:
      • alarm ("para"); provoni (promt ("shkruani një numër"); // operator me një gabim)

        Provo nga anglishtja. - "provo", kështu, ne vendosim një deklaratë try përpara një fragment kodi që mund të përmbajë një gabim (në rastin tonë, me të vërtetë ekziston një gabim).

      • Mesazhi i gabimit duhet të vendoset në një bllok kapës:
      • 6 7 8 9 kap (e) (vigjilent ( "trajtimi i gabimit:"+ e. mesazh); )

        kap (e) (alarm ("trajtimi i gabimit:" + e. mesazhi);)

        Nëse vërtet ekziston një gabim, atëherë deklarata e kap këtë gabim në objektin e. Më vonë mund të shfaqet në kutinë e dialogut e.message.

      • Vendosni mesazhin përfundimtar, i cili duhet të shfaqet pavarësisht nëse ka ndonjë gabim në kod, në një bllok përfundimisht:
      • më në fund (alarm ("veprimet e mbarimit");) alarm ("pas");

        Nëse ka një gabim, atëherë interpretuesi, pasi e ka shfaqur atë në shembullin tonë, do të vazhdojë të ekzekutojë bllokun e kapjes, dhe pastaj më në fund (nga anglishtja "përfundimi", "më në fund"), i cili do të ekzekutohet gjithmonë, pavarësisht nëse ka pasur një gabim apo jo. Edhe nëse ka pasur një gabim në bllokun e kapjes.

      E rëndësishme: Blloku i fundit është opsional në ndërtim.


      Detyra Js 3_17. Ndiqni shembullin e mësipërm me modifikimet e mëposhtme:

    3. Hiqni bllokun e fundit dhe shikoni drejtimin e kodit.
    4. Zëvendësoni operatorin e gabuar me një pa gabime dhe shikoni se cili do të jetë rezultati.
    5. Përmbledhje:

      Mësimi përfshiu operatorët dhe ndërtimet e mëposhtme javascript:

      Deklarata me kusht Javascript:

    6. Nëse deklarata
    7. Caktimi i kushtëzuar (operatori i tretë)
    8. Deklarata e ndërrimit
    9. Operatorët loop:

    10. Për lak
    11. Ndërsa lak
    12. Cikli do ... ndërsa
    13. Për ... në lak
    14. Detyra përfundimtare Js 3_18.
      Krijoni një lojë për dy:

      1. Programi kërkon që lojtari i parë të fusë një numër nga 1 para 100 (lojtari i dytë nuk e sheh numrin e futur). Pastaj lojtarit të dytë i kërkohet të hamendësojë numrin e futur. Mesazhi shfaqet si përgjigje "pak" ose "shumë" në varësi të përgjigjes së futur. Nëse lojtari mendon saktë, urimet shfaqen. Nëse ai mendon gabim, loja vazhdon (derisa numri të mendohet në të vërtetë).
      2. Llogaritni numrin e përpjekjeve dhe ktheni rezultatin kur numri është supozuar.


      Pyetjet për vetëkontroll:

      1. Kur këshillohet të përdorni një lak For In? Cili është një shembull i përdorimit të tij.
      2. Cili është qëllimi i deklaratës try..catch?
      3. Shpjegoni qëllimin e secilit bllok të deklaratës try..catch.

      JavaScript ka një konstrukt të kushtëzuar që ndikon në rrjedhën e ekzekutimit të një programi. Nëse (në anglisht nëse) diçka është, diçka është e vërtetë, atëherë bëj një gjë, përndryshe (në anglisht tjetër) - bëj një tjetër.

      Nëse deklarata

      Le të hedhim një vështrim se si funksionon deklarata if, është e thjeshtë dhe nuk kërkon shumë shpjegim.

      If (kushti) (kodi për të ekzekutuar nëse kushti është i vërtetë)

      Simpleshtë e thjeshtë: nëse kushti është i vërtetë, atëherë kodi në bllokun (...) ekzekutohet.

      Shifra e var \u003d 4; nëse (shifra \u003d\u003d 4) (dokumenti.write ("shifra është 4.");)

      Mund të bëhet një kod i çuditshëm:

      Shifra e var \u003d 4; nëse (e vërtetë) (dokumenti.write ("Kushti është i vërtetë.");)

      Deklaratë tjetër

      Një pohim tjetër mund të përdoret së bashku me një pohim if. Ai përkthehet në "ndryshe" dhe ofron një kod alternativ.

      Shifra e var \u003d 4; nëse (shifra

      Vini re drejtshkrimet e ndryshme të bazamenteve kaçurrelë në këtë shembull për thëniet nëse dhe tjetër. Nuk është e detyrueshme të shkruhet në këtë mënyrë, të dy sintaksat janë të sakta.

      Deklarata tjetër mund të pasohet nga një deklaratë e re nëse. Kjo do të testojë kushte të shumëfishta.

      Shifra e var \u003d 4; nëse (shifra

      JavaScript nuk ka një deklaratë tjetër (me një fjalë) siç ka PHP.

      Nëse duhet të ekzekutoni vetëm një deklaratë, atëherë format e teksteve bllokuese (...) janë të panevojshme. Në shembullin tonë, ju nuk keni nevojë t'i shkruani ato:

      Shifra e var \u003d 4; nëse (shifra

      Gënjeshtra në JavaScript

      Deklarata if (kusht) vlerëson dhe shndërron gjendjen (shprehjen) e parantezuar në llojin boolian (e vërtetë ose e gabuar).

      Le të rishikojmë atë që qëndron në JavaScript.

      • Numri 0 (zero).
      • Vija boshe "".
      • False Boolean :)
      • Vlera është nul.
      • Vlera është e papërcaktuar.
      • Vlera NaN (Jo një numër).

      Çdo gjë tjetër është e vërtetë.

      Disa gabime të mundshme:

      If ("false") dokument.write ("Kjo është e vërtetë.
      "); if (false) document.write (" Kjo është e vërtetë.

      ");

      Këtu duhet të dalloni vargun "false" (në thonjëza), nga vlera e tipit boolean false.

      If ("") document.write ("Kjo është e vërtetë.
      "); other document.write (" Kjo është false.
      ");

      Këtu duhet të dalloni vargun "" (brenda një hapësire), nga vargu bosh "". Një hapësirë \u200b\u200bbrenda një vargu e bën atë jo bosh, por një karakter që përmban. Për përkthyesin, nuk ka rëndësi një shkronjë ose një hapësirë \u200b\u200b- një simbol është një simbol.

      Kushte të tjera në JavaScript

      • Ndërtimi i ndërprerësit JavaScript.
      • Pikëpyetja e operatorit

      Operatorët e kushtëzuar

      Deklaratat e kushtëzuara ju lejojnë të kapërceni ose ekzekutoni deklarata të tjera bazuar në vlerën e shprehjes së specifikuar. Këta operatorë janë pikat e vendimit në program, dhe nganjëherë quhen edhe operatorët e degëzimit.

      Nëse imagjinojmë se programi është një rrugë, dhe interpretuesi JavaScript është një udhëtar që ecën përgjatë tij, atëherë deklaratat e kushtëzuara mund të mendohen si kryqëzime, ku kodi i programit degëzohet në dy ose më shumë rrugë, dhe në kryqëzime të tilla interpretuesi duhet të zgjedhë se në cilën rrugë do të ecë. ...

      Deklarata nëse / tjetër

      Deklarata if është një deklaratë bazë kontrolli që lejon interpretuesin JavaScript të marrë vendime, ose më saktësisht, të ekzekutojë deklarata bazuar në kushte. Deklarata if ka dy forma. E para:

      nëse (shprehje) deklaratë

      Në këtë formë, shprehja vlerësohet e para. Nëse rezultati është i vërtetë, atëherë deklarata ekzekutohet. Nëse shprehja kthehet false, atëherë deklarata nuk ekzekutohet. Për shembull:

      Nëse (emri i përdoruesit \u003d\u003d null) // Nëse emri i përdoruesit është null ose emër i papërcaktuar përdoruesi \u003d "Alex"; // përcaktoni atë

      Vini re se kllapat rreth shprehjes së kushtëzuar janë një pjesë e kërkuar e sintaksës së pohimit if.

      Forma e dytë e deklaratës if paraqet një klauzolë tjetër, e cila ekzekutohet kur shprehja kthehet false. Sintaksa e saj është:

      nëse (shprehja) deklaratë1 tjetër deklaratë2

      Kjo formë ekzekuton deklaratën 1 nëse shprehja kthehet e vërtetë, dhe deklarata2 nëse shprehja kthehet false. Për shembull:

      If (n \u003d\u003d 1) console.log ("1 mesazh i ri i marrë."); tjetër console.log ("Marrë" + n + "mesazhe të reja.");

      Deklarata tjetër nëse

      Deklarata if / else vlerëson vlerën e shprehjes dhe ekzekuton një ose një pjesë tjetër të kodit të programit, në varësi të rezultatit. Por, çka nëse doni të ekzekutoni një nga shumë copa? Një mënyrë e mundshme për ta bërë këtë është përdorimi i një deklarate tjetër nëse. Nuk është zyrtarisht një operator i pavarur JavaScript; ky është vetëm një stil i zakonshëm programimi që përdor një deklaratë përsëritëse nëse / tjetër:

      Nëse (n \u003d\u003d 1) (// Ekzekutoni bllokun 1) tjetër nëse (n \u003d\u003d 2) (// Ekzekutoni bllokun 2) tjetër nëse (n \u003d\u003d 3) (// Ekzekutoni bllokun 3) tjetër (// Nëse asnjë një nga deklaratat e mëparshme tjetër nuk ishte ekzekutuar, ekzekutoni bllokun 4)

      Nuk ka asgjë të veçantë në këtë fragment. Simplyshtë thjesht një sekuencë e thënieve if, ku secila if pohim është pjesë e deklaratës other të deklaratës së mëparshme.

      Deklarata e ndërrimit

      Deklarata if krijon degëzim në rrjedhën e programit, dhe degëzimi me shumë pozicione mund të implementohet me deklarata të shumta të tjera. Sidoqoftë, kjo nuk është gjithmonë zgjidhja më e mirë, veçanërisht nëse të gjitha degët varen nga vlera e së njëjtës shprehje. Në këtë rast, është e kotë të rivlerësohet vlera e së njëjtës shprehje në deklarata të shumëfishta.

      Deklarata e ndërprerësit është krijuar për pikërisht situata të tilla. Fjala kyçe e çelësit ndiqet nga një shprehje e parantezuar dhe një bllok kodi në kllapa kaçurrelë:

      kaloni (shprehja) (deklaratat)

      Sidoqoftë, sintaksa e plotë e një deklarate kaloni është më komplekse sesa tregohet këtu. Vende të ndryshme në bllok janë shënuar me fjalën kyçe raste ndjekur nga një shprehje dhe një karakter i zorrës së trashë.

      Kur ekzekutohet një deklaratë ndërprerëse, ajo vlerëson vlerën e shprehjes dhe pastaj kërkon një etiketë të rastit që përputhet me atë vlerë (përputhja përcaktohet duke përdorur operatorin e identitetit \u003d\u003d\u003d). Nëse gjendet një etiketë, blloku i kodit ekzekutohet duke filluar nga deklarata e parë që vijon me etiketën e rastit. Nëse nuk gjendet asnjë etiketë rasti me vlerë përputhëse, ekzekutimi fillon nga deklarata e parë që ndjek etiketën speciale parazgjedhur:... Nëse nuk ka etiketë të paracaktuar: i gjithë blloku i ndërprerësit anashkalohet.

      Difficultshtë e vështirë të shpjegosh funksionimin e pohimit të ndërprerësit me fjalë, shpjegimi duket shumë më i qartë me një shembull. Deklarata e mëposhtme e ndërprerësit është ekuivalente me deklaratat e përsëritura nëse / tjetër tregohet në shembullin e mëparshëm:

      Ndërroni (n) (rasti 1: // Ekzekutoni nëse n \u003d\u003d\u003d 1 // Ekzekutoni ndërprerjen e bllokut 1; // Ndaloni këtu rasti 2: // Ekzekutoni nëse n \u003d\u003d\u003d 2 // Ekzekutoni ndërprerjen e bllokut 2; / / Stop këtu rasti 3: // Ekzekutoni nëse n \u003d\u003d\u003d 3 // Ekzekutoni ndërprerjen e bllokut 3; // Ndaloni këtu parazgjedhur: // Nëse gjithçka tjetër dështon ... // Ekzekutoni ndërprerjen e bllokut 4; // Ndalet këtu )

      Kushtojini vëmendje fjalës kyçe pushim në fund të secilit bllok të çështjeve. Deklarata pushim transferon kontrollin në fund të deklaratës switch dhe vazhdon ekzekutimin e pasqyrave që vijojnë. Deklaratat e çështjes në një deklaratë kaloni specifikojnë vetëm pikën fillestare të kodit që ekzekutohet, por nuk specifikojnë ndonjë pikë përfundimtare.

      Nëse nuk ka deklarata pushimi, deklarata e ndërprerësit do të fillojë ekzekutimin e një blloku kodi me një etiketë të shkronjave që përputhet me vlerën e shprehjes dhe do të vazhdojë ekzekutimin e deklaratave derisa të arrijë në fund të bllokut. Në raste të rralla, kjo është e dobishme për të shkruar kodin që hidhet nga një etiketë e rastit në tjetrën, por 99% të kohës, duhet të përfundoni me kujdes çdo bllok rasti me një deklaratë pushimi. (Kur përdorni ndërprerësin brenda një funksioni, mund të përdorni një deklaratë kthimi në vend të ndërprerjes. Të dyja këto deklarata përfundojnë deklaratën e ndërprerësit dhe parandalojnë kërcimin në etiketën e rastit tjetër.)

      Më poshtë është një shembull më praktik i përdorimit të një deklarate kalimi, ajo shndërron një vlerë në një varg në një mënyrë që varet nga lloji i vlerës:

      Konvertimi i funksionit (x) (ndërrimi (tipi i x) (// Shndërrimi i një numri në një numër të plotë heksadecimal "numër": kthimi x.toString (16); // Kthimi i një vargu të cituar "varg": kthimi "" "+ x + "" "; // Çdo lloj tjetër shndërrohet në mënyrën e zakonshme të parazgjedhur: ktheni x.toString ();)) console.log (shndërroni (1067)); // Rezultati "42b"

      Vini re se në dy shembujt e mëparshëm, fjalët kyçe të rastit ndiqeshin nga numra ose vargje. Kjo është mënyra se si deklarata e ndërprerësit përdoret më shpesh në praktikë, por standardi ECMAScript ju lejon të specifikoni shprehje arbitrare pas çështjes.

      Deklarata e çelësit vlerëson së pari shprehjen pas fjalës kyçe të çelësit dhe pastaj shprehjet e shkronjave në rendin në të cilin ato shfaqen derisa të gjendet një vlerë e përputhshme. Fakti i një ndeshje përcaktohet me operatorin e identitetit \u003d\u003d\u003d, jo me operatorin e barazisë \u003d\u003d, kështu që shprehjet duhet të përputhen pa asnjë lloj shndërrimi.

      Meqenëse jo të gjitha shprehjet e shkronjave vlerësohen sa herë që ekzekutohet një deklaratë ndërprerëse, duhet të shmangni përdorimin e shprehjeve të shkronjave që kanë efekte anësore, siç janë thirrjet e funksioneve dhe caktimet. Estshtë më e sigurt të kufizosh shprehjet e rasteve në shprehje të vazhdueshme.

      Siç u shpjegua më herët, nëse asnjë nga shprehjet e rastit nuk përputhet me shprehjen e ndërprerësit, deklarata e ndërprerësit fillon të ekzekutojë deklaratën e etiketuar si e paracaktuar:. Nëse nuk ka etiketë të paracaktuar: trupi i deklaratës së ndërprerësit anashkalohet tërësisht. Vini re se në shembujt e mëparshëm, etiketa e paracaktuar: shfaqet në fund të trupit të deklaratës së ndërprerësit pas të gjitha etiketave të shkronjave. Ky është një vend logjik dhe i zakonshëm për të, por në fakt ai mund të vendoset kudo brenda një deklarate kaloni.