Windows.  Viruslar.  Noutbuklar.  Internet.  idora.  Utilitalar.  Haydovchilar

Ushbu maqolada biz shartli va ni ko'rib chiqamiz mantiqiy operatorlar JavaScript tili.

JavaScript shartli bayonotlari

Shartli gaplar JavaScript tilidagi (ECMAScript) bayonotlar boʻlib, ular baʼzi shartlarga qarab bir yoki bir nechta aniq koʻrsatmalarni bajarishga imkon beradi.

JavaScript-da shartli bayonotlar shakllari:

  • shartli if ifodasi (bitta filial bilan);
  • shartli operator if...else (ikki tarmoqli);
  • shartli boshqa bayonot agar... (bir nechta shoxchalar bilan);
  • uchlik operator (?: );
  • almashtirish bayonoti.

Shartli if iborasi

if iborasining sintaksisi:

Agar (shart) bayonoti

Shartli if bayonoti quyidagilardan iborat:

  • kalit so'z agar ;
  • rost yoki noto'g'ri bo'lishi kerak bo'lgan shartlar (qavslar ichidagi ifodalar) (yoki ushbu qiymatlardan biriga o'tkazilishi kerak);
  • amal qilish uchun ko'rsatmalar agar shart rost bo'lsa yoki unga berilgan bo'lsa.

Masalan:

Agar (haqiqiy) hisob = 4 bo'lsa;

Bu misol shart sifatida true dan foydalanadi. Bu shuni anglatadiki, count = 4 buyrug'i doimo bajariladi. Bu misol faqat if iborasi qanday ishlashini tushuntirish uchun berilgan, chunki u hech qanday ma'nodan mahrum.

Masalan, ovozlar o'zgaruvchisining qiymatini 1 ga oshiramiz, agar u (uning turi) raqam bo'lsa:

Agar (ovozlar turi === “son”) ovoz++;

Agar siz bir nechta ko'rsatmalarni bajarishingiz kerak bo'lsa, ular jingalak qavslarga joylashtirilishi kerak:

Agar (ovozlar turi === "son") ( ovozlar++; console.log("Ovozlar soni: " + ovozlar); )

Agar (ovozlar turi === "raqam") (ovozlar++; )

agar ... boshqacha bayonot

If...else buyrug'i shart rost bo'lganda ma'lum ko'rsatmalarni bajarish zarur bo'lganda, boshqalari esa shart noto'g'ri bo'lganda ishlatiladi.

Sintaksis:

If (shart) (bir yoki bir nechta bayonot (shart to'g'ri yoki rost bo'lganda bajarilishi kerak)) boshqa (bir yoki bir nechta bayonot (shart noto'g'ri bo'lsa yoki noto'g'ri bo'lsa bajariladi))

Misol uchun, konsolga raqamning juft yoki yo'qligi haqida xabarni chop qilaylik:

Agar (% 2 raqam) ( console.log("Raqam toq!"); ) else ( console.log("Raqam juft!"); )

Shartni rost yoki noto'g'ri deb belgilash qoidasi

Agar if ifodasi shartidagi ifoda true yoki false ga teng bo'lmasa, JavaScript uni shu qiymatlardan biriga o'tkazadi. U bu harakatni "yolg'on qoidasi" yordamida amalga oshiradi.

Ushbu qoidaning ma'nosi: quyidagi qiymatlardan tashqari har qanday ifoda haqiqatdir:

  • yolg'on (noto'g'ri);
  • "" yoki "" (bo'sh qator);
  • NaN ("raqam emas" maxsus raqamli ma'lumotlar turi);
  • 0 ("nol" raqami);
  • null ("bo'sh" qiymat);
  • aniqlanmagan ("aniqlanmagan" qiymat).

Misol uchun, nameUser o'zgaruvchisida qanday qiymat saqlanganiga qarab brauzer konsoliga xush kelibsiz xabarni chop qilaylik:

If (nameUser) ( console.log("Salom, " + name + "!"); ) else ( console.log("Salom, mehmon!"); )

Agar nameUser o'zgaruvchisi bo'sh qatorni o'z ichiga olsa, u holda yolg'on qoidasiga ko'ra, u false qiymatiga o'tkaziladi. Shuning uchun konsolda "Salom, mehmon!" xabari ko'rsatiladi. .

Va agar, masalan, nameUser o'zgaruvchisi "Timur" qatorini o'z ichiga olsa, u holda shartdagi ifoda true qiymatiga o'tkaziladi. Natijada konsolda “Salom, Timur!” degan xabar paydo bo‘ladi. .

else if... bayonoti (bir nechta shartlar)

Sintaksis:

If (shart1) ( 1-bo'lim ) else if (2-shart) ( 2-bo'lim ) else if (3-shart) ( 3-band //... ) else if (shartN) ( iboralar N ) else ( ifodalar bajariladi, agar ulardan hech biri bo'lmasa. shartlar to'g'ri emas yoki bu qiymatga o'tkazilmagan)

Shartli (uchlik) operator (?:)

Uchlik operator – JavaScript operatori, bu shartga qarab, zarur bo'lganda, berilgan ikkita ifodadan birini bajarish uchun ishlatilishi mumkin.

Sintaksis:

Vaziyat? ifoda 1: ifoda 2

Uchlik operator uchta operanddan iborat bo'lib, ular belgilar yordamida ajratiladi? Va: . Birinchi operandda uchlik operatorning sharti ko'rsatilgan. Qavslar ichiga ham yozilishi mumkin. Agar shart rost bo'lsa yoki u shu qiymatga o'tkazilsa, ifoda1 bajariladi, aks holda ifoda2 bajariladi.

Masalan:

(raqam > 10)? console.log("Raqam 10 dan katta!") : console.log("Raqam 10 dan kichik yoki unga teng");

JavaScript bir nechta uchlik operatorlarga ruxsat beradi (?:):

Var dayNumber = new Date().getDay(); kun = (kun raqami === 0) ? "Yakshanba" : (kun raqami === 1) ? "Dushanba" : (kun raqami === 2) ? "Seshanba" : (kun raqami === 3) ? "Chorshanba" : (kun raqami === 4) ? "Payshanba" : (kun raqami === 5) ? "Juma" : (kun raqami === 6) ? "Shanba" : "Haftaning noma'lum kuni"; console.log("Bugun " + day.toLowerCase() + ".");

Yuqoridagi misol, lekin bir nechta if...else iboralaridan foydalanish:

Var dayNumber = new Date().getDay(); agar (kunNumber === 0) ( kun = "Yakshanba"; ) boshqacha bo'lsa (kunNumber === 1) (kun = "Dushanba"; ) boshqa bo'lsa (kunNumber === 2) (kun = "Seshanba"; ) else if (dayNumber === 3) ( day = "Chorshanba"; ) else if (dayNumber === 4) (day = "Payshanba"; ) else if (dayNumber === 5) ( kun = "Juma"; ) else if (dayNumber === 6) ( kun = "Shanba"; ) else ( kun = "Haftaning noma'lum kuni"; ) console.log("Bugun " + day.toLowerCase() + ".") ;

almashtirish bayonoti

Switch operatori ifoda qiymatiga qarab ko'rsatmalarning bir nechta versiyasidan bittasini bajarish uchun mo'ljallangan. Bir yoki boshqa variantni tanlash, ifoda natijasining ish qiymatiga qat'iy tengligi bilan belgilanadi ( hol ).

Switch bayonot sintaksisi:

Switch (ifoda) ( case qiymati1: // ... ifoda natijasi "qiymat1" tanaffus bo'lsa, bajariladigan ko'rsatmalar; // ixtiyoriy ko'rsatma (agar ishlatilmasa, keyingi almashtirish buyrug'i bajariladi) case qiymati2 : // ... ifoda "qiymat2" deb baholansa, bajariladigan ko'rsatmalar; // ixtiyoriy ko'rsatma (agar ishlatilmasa, switch operatorining keyingi buyrug'i bajariladi) // ... case qiymatiN: / / .. ifodaning natijasi "valueN" bo'lsa, bajariladigan ko'rsatmalar tanaffus; // ixtiyoriy ko'rsatma (agar foydalanilmasa, keyingi almashtirish buyrug'i bajariladi) sukut bo'yicha: // agar bajariladigan ko'rsatmalar ifodaning natijasi qiymatlarning bir nechtasiga teng emas)

Standart kalit so'z ixtiyoriy. Ifodaning natijasi hech qanday holat qiymatiga teng bo'lmasa, bajarilishi kerak bo'lgan ko'rsatmalarni belgilash zarur bo'lganda ishlatiladi.

Break bayonoti ixtiyoriy. U switch operatorining bajarilishini to'xtatish va boshqaruvni undan keyin keladigan buyruqqa o'tkazish uchun mo'ljallangan.

Masalan, brauzer konsolida konfetlar soni haqidagi xabarni ko'rsatamiz:

Var countCandyBoys = 1, countCandyGirls = 2, xabar; almashtirish (countCandyBoys + countCandyGirls) (1-holat: xabar = "Bir konfet"; tanaffus; 2-holat: 3-holat: xabar = "Ikki yoki uchta konfet"; tanaffus; 4-holat: xabar = "To'rtta konfet"; tanaffus; standart: message = "Bir emas, ikkita emas, uchta yoki to'rtta konfet emas"; ) // xabarni konsolga chop eting console.log(xabar);

Yuqoridagi misolda baholangan ifoda 3 ga teng. Shuning uchun xabar = "Ikki yoki uchta konfet" va break iboralari bajariladi. Break operatori switch operatorining keyingi bajarilishini to'xtatadi va boshqaruvni undan keyingi operatorga o'tkazadi, ya'ni. console.log (xabar) . U konsolga xabarni chop etadi "Ikki yoki uchta shirinlik".

Masalan, konsolda haftaning joriy kunini ko'rsatamiz:

var day = ""; switch(new Date().getDay()) (holat 0: kun = "Yakshanba"; tanaffus; 1-holat: kun = "dushanba"; tanaffus; 2-holat: kun = "seshanba"; tanaffus; 3-holat: kun = "Chorshanba"; tanaffus; 4-holat: kun = "payshanba"; tanaffus; 5-holat: kun = "juma"; tanaffus; 6-holat: kun = "shanba"; tanaffus; standart: kun = "haftaning noma'lum kuni" ; ) console.log("Bugun " + day.toLowerCase() + ".");

Break iborasidan foydalanmaydigan misol:

varresult = "muvaffaqiyat"; switch (natija) ( "muvaffaqiyatli" holati: console.log("Muvaffaqiyat!"); "invalidCaptcha" holati: console.log("Yaroqsiz captcha!"); sukut bo'yicha: console.log("Xato!"); )

Ushbu misolda switch iborasi muvaffaqiyatga teng. Shuning uchun, "Muvaffaqiyat!" xabarini chop etadigan console.log("Muvaffaqiyat!") bayonoti bajariladi. konsolga. Ammo undan keyin hech qanday break bayonoti mavjud emasligi sababli, skriptning bajarilishi keyingi variantda davom etadi. Shunday qilib, ko'rsatmalar yo'lda tanaffusga duch kelmaguncha yoki switch operatorining oxirigacha bajariladi. Ushbu misolni bajarish natijasida konsolda 3 ta xabar paydo bo'ladi: "Muvaffaqiyatli!" , "Noto'g'ri captcha!" va "Xato!" .

Ba'zi hollarda, bu xatti-harakat talab qilinishi mumkin, ammo bunda emas. Bu yerda shunchaki xato.

To'g'rilangan misol:

varresult = "muvaffaqiyat"; switch (natija) ( "muvaffaqiyat" holati: console.log("Muvaffaqiyat!"); tanaffus; "invalidCaptcha" holati: console.log("Yaroqsiz captcha!"); break; sukut bo'yicha: console.log("Xato!" );)

Mantiqiy operatorlar

JavaScript quyidagi mantiqiy operatorlarni ajratib turadi:

  • && - mantiqiy "VA";
  • || - mantiqiy "YOKI";
  • ! - mantiqiy "YO'Q".

Agar mantiqiy qiymatlar operand1 && operand2 mantiqiy ifodasida ishlatilsa, har bir qiymat rost bo'lsa, bu ifoda rost deb baholanadi; aks holda, bu ifodaning qiymati noto'g'ri bo'ladi.

Noto'g'ri && noto'g'ri // noto'g'ri rost && noto'g'ri // noto'g'ri noto'g'ri && rost // noto'g'ri rost && rost // rost

Agar mantiqiy ifoda operand1 && operand2 mantiqiy bo'lmagan qiymatlardan foydalansa, u holda bu ifodaning natijasi operand1 bo'ladi, agar uni yolg'onga chiqarish mumkin bo'lsa; aks holda, bu ifodaning natijasi operand2 bo'ladi.

5 && 0 // 0 1 && 5 // 5 "string" && undefined // aniqlanmagan "string1" && "string2" // "string2"

Agar mantiqiy ifodada operand1 || operand2 mantiqiy qiymatlari ishlatiladi, agar ulardan kamida bittasi rost bo'lsa, bu ifodaning natijasi to'g'ri bo'ladi; aks holda, bu ifodaning qiymati noto'g'ri bo'ladi.

noto'g'ri || noto'g'ri // noto'g'ri rost || noto'g'ri // haqiqiy noto'g'ri || rost // rost rost || rost // rost

Agar mantiqiy ifodada operand1 || operand2 mantiqiy bo'lmagan qiymatlardan foydalanadi, keyin bu ifodaning natijasi operand1 bo'ladi, agar uni true ga o'tkazish mumkin bo'lsa; aks holda, bu ifodaning natijasi operand2 bo'ladi.

5 || 0 // 5 1 || 5 // 1 "chiziq" || aniqlanmagan // "string" "string1" || "2-qator" // "1-qator"

Mantiqiy ifoda!operand1 agar operand1 noto'g'ri bo'lsa yoki shu qiymatga o'tkazilishi mumkin bo'lsa, rost deb baholanadi; aks holda, bu ifoda false ga baholanadi.

False // rost ! true // false !"string" // false !5 // false"

IN bu misol biz birinchi navbatda var kalit so'zi bilan to'rtta o'zgaruvchini e'lon qilamiz va ularga darhol raqamli qiymatlarni tayinlaymiz. Keyinchalik, oshirish va kamaytirish operatorlari yordamida raqamlarning qiymatlarini o'zgartiramiz. Ma'lumot funksiya yordamida ko'rsatiladi aks-sado("" maqolasiga qarang). Ob'ekt nomini yana bir bor yozmaslik uchun men konstruktsiyadan foydalandim bilan().

Mantiqiy operatorlar

Mantiqiy operatorlar shartni tekshirishda ishlatiladi, takrorlanmaslik uchun qisqartma qilaman: chap operand L.O., o'ng operand esa P.O.

  • && - mantiqiy "VA"
  • || - "YOKI"
  • ! - "YO'Q"
  • > - L.O. ko'proq P.O.
  • >= - L.O. P.O dan katta yoki unga teng.
  • < - Л.О. меньше П.О.
  • <= - Л.О. меньше или равен П.О.
  • == - L.O. teng P.O.
  • != - L.O. P.O ga teng emas.
  • |= - L.O. o'ziga teng YOKI P.O.
  • &= - L.O. o'ziga tengdir VA P.O.
  • ^= - EKSKLUZIV YOKI

Endi quyidagi skriptni ko'rib chiqing:

//***************************************** // mantiqiy operatsiyalar// logic_if_else.js //***************************************** var a= 10 , b= 100 , WshShell, title, msg1, msg2, msg3, msg4, vbInformation = 64 ; // WScript.Shell sinfining namunasini yarating WshShell = WScript.CreateObject("WScript.Shell" ); sarlavha = "IF ELSE JS shartli bayonoti bilan ishlash"; with(WshShell) ( agar (a>= 5 && a<= 100 ) //истина msg1 = "TRUE" ; else msg1 = "FALSE" ; Popup (msg1, 5 , title, vbInformation) ; if (a>= 5 || b== 100 ) //true msg2 = "TRUE" ; else msg2 = "FALSE" ; Qalqib chiquvchi oyna (msg2, 5 , sarlavha, vbInformation); //shartli bayonot js if else agar (! a) //false msg3 = "TRUE" ; else msg3 = "FALSE" ; Qalqib chiquvchi oyna (msg3, 5, sarlavha, vbInformation); agar (a&= 100 ) //false msg4 = "TRUE" ; else msg4 = "FALSE" ; Qalqib chiquvchi oyna (msg4, 5, sarlavha, vbInformation); )

Oldingi skriptda bo'lgani kabi, bu erda men konstruktsiyadan foydalandim bilan kodni qisqartirish uchun. Biroq, ma'lumotni ko'rsatish uchun biz funksiyadan foydalandik qalqimoq("" maqolasiga qarang). Natijada, dialog oynalari bir necha soniyadan so'ng avtomatik ravishda yopiladi. E'tibor bering, biz bu misolda jingalak qavslardan foydalanmadik. js if shartli bayonotida ular faqat bitta kod satrini emas, balki bir nechtasini bajarish kerak bo'lganda tegishli bo'ladi.

Va nihoyat, kvadrat tenglamani yechish kabi amaliy misolni ko'rib chiqaylik:

// Kvadrat tenglamani yechish// uravnenije_if_else.js // *********************************************************** var a, b, c, d, x, x1, x2; //O'zgaruvchilarni e'lon qilish a=- 2 ; b=6; c= 20; // Diskriminantni qidirish d= Matematik .pow (b, 2 ) - 4 * a * c; agar (d== 0 ) ( x= b/ (2 * a) ; msg= "Tenglama bitta yechimga ega, x aynan"+ x ) boshqacha ( agar (d> 0 ) ( x1= (- b+ Matematik .sqrt (d) ) / (2 * a) ; x2= (- b- Matematika .sqrt (d) ) / (2 * a) msg= "Tenglama ikkita yechimga ega \n x1 aniq"+ x1 + " \n x2 aynan "+x2; // shartli bayonot if else js) else msg= "Yechim yo'q" ; ) WScript.Echo (xabar) ;

Kundalik hayotda ko'pincha qandaydir sharoitga qarab qandaydir qaror qabul qilish kerak bo'ladi. Misol uchun, dam olish kunida havo iliq bo'lsa, biz dengizga boramiz, aks holda, agar bulutli bo'lsa, biz uyda o'tiramiz.

Dasturlashda bu ham juda keng tarqalgan. Buning uchun mavjud ikkita shartli gap, bu if-else va switch-case. Ushbu maqolada men if-else iborasi haqida, keyingi maqolada esa switch-case haqida gapirib beraman.

Sintaksis shartli operator agar-boshqa Keyingisi:


Agar shart rost bo'lsa, if blokidagi kod bajariladi, aks holda shart noto'g'ri bo'lsa, else blokidagi kod bajariladi.

Yaxshiroq tushunish uchun shunday oddiy misolni olaylik, bizda ma'lum miqdorda pul bor va biz mashina olmoqchimiz va bu erda darhol shunday holat paydo bo'ladi, agar pulimiz etarli bo'lsa, unda biz bu mashinani sotib olamiz, aks holda biz mumkin emas.

Var pul = 35000; // Aytaylik, bizda 35 000 evro bor // Biz sotib olmoqchi bo'lgan mashina 50 000 evro turadi. Va quyidagi holat yuzaga keladi, agar(pul > 50000)( document.write("Biz mashina sotib olamiz"); )else( document.write("Mashina sotib olishga pul yetarli emas"); )

Biz hujjatni saqlaymiz, uni brauzerda ochamiz va sahifada quyidagi xabar ko'rsatilganligini ko'ramiz: "Avtomobil sotib olish uchun pul etarli emas". Agar bizda 50 000 evrodan ko'proq pul bo'lsa, if blokidagi kod bajariladi. Agar bizda roppa-rosa 50 000 evro bo'lsa, biz ham mashina sotib ololmasdik, chunki 50 000 50 000 dan oshmaydi. bu holat rost bo'lsa, katta yoki teng belgisini yozish kerak (>=).

Izoh! Teng mantiqiy amal ikkita teng belgi bilan yoziladi (==). dan kichik yoki teng mantiqiy operatsiya ham mavjud (

jingalak qavslar yordamida

Agar faqat bitta bayonot bo'lsa, jingalak qavslar ixtiyoriy, agar blokda bir nechta bayonot bo'lsa, jingalak qavslar talab qilinadi.

Yuqoridagi misol jingalak qavslarsiz juda yaxshi ishlaydi, chunki har ikkala blokda faqat bitta bayonot mavjud.

Ichkarida har qanday mantiqiy amallarni yozishingiz mumkin bo'lsa ular oddiy yoki murakkab bo'ladimi. AND (&&) va OR (||) operatorlaridan ham foydalanishingiz mumkin.

Izoh! else blokining mavjudligi ixtiyoriydir.

Misol uchun, agar a b ga, c esa d ga teng bo'lsa, biz mos keladigan xabarni ko'rsatamiz, aks holda boshqa blok bo'lmasa, biz keyingi qatorga o'tamiz.

Var a = 4, b = 4, c = 8, d = 8; if((a == b) && (c == d)) document.write("a teng b VA c d ga teng"); document.write("Kodning keyingi qatori");

if-else if-else ifodasi

If blokidan keyin bir yoki bir nechta boshqa if bloklari kelishi mumkin va oxirida else bloki mavjud. Bu bir nechta shartlardan foydalanish kerak bo'lganda foydalidir.


Yaxshiroq tushunish uchun kundalik hayotdan misol keltiraylik. Misol uchun, bizda ma'lum miqdordagi savdo nuqtalari mavjud. Xonada faqat bitta rozetka bo'lsa, u holda biz faqat bitta qurilmani ulashimiz mumkin, agar ikkita rozetka bo'lsa, ikkita qurilmani ulashimiz mumkin, agar ko'proq bo'lsa, uydan barcha qurilmalarni elektr tarmog'iga ulashimiz mumkin. .

Endi dasturlashga o'tamiz.

var soket = 2; // Uydagi rozetkalar soni if(socket == 1)  document.write("

Biz faqat bitta qurilmani ulashimiz mumkin

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

Biz faqat ikkita qurilmani ulashimiz mumkin

"); document.write("

Masalan, televizor va noutbuk

"); )else( document.write("

Biz barcha qurilmalarni uydan elektr tarmog'iga ulashimiz mumkin

"); }

Soket o'zgaruvchisining qiymatiga qarab, u yoki bu kod bloki ishlaydi. Siz allaqachon tushunganingizdek, agar rozetka 1 ga teng bo'lsa, kodning birinchi bloki ishlaydi. Agar rozetka 2 bo'lsa, u holda kodning ikkinchi bloki ishlaydi va agar rozetka boshqa qiymatga ega bo'lsa (hatto manfiy raqam ham), uchinchi kod bloki ishlaydi.

If other uchun qisqa

Qisqartma ma'lum bir shartga qarab, o'zgaruvchi u yoki bu qiymatni olishi mumkin bo'lganda ishlatilishi mumkin.


Masalan, a o'zgaruvchining qiymati b o'zgaruvchining qiymatidan katta bo'lsa, u holda x o'zgaruvchiga quyidagi xabarni yozamiz, "a o'zgaruvchisi b o'zgaruvchidan katta", aks holda "a o'zgaruvchisi b o'zgaruvchidan kichik" deb yozamiz. ".

Var a = 50, b = 100, x; x = (a > b) ? "

O'zgaruvchan a Ko'proq o'zgaruvchi b

" : "

O'zgaruvchan a Ozroq o'zgaruvchi b

"; //Natija hujjatini chiqaring.write(x);

Ushbu maqolada sizga aytmoqchi bo'lgan narsam shu edi. If-else shartli iborasi har bir skriptga qaraganda ko'proq ishlatiladi, shuning uchun uni bilish va tushunish juda muhimdir. Keyingi maqolada men sizga yana bir switch-case shartli gap haqida gapirib beraman.

JavaScript-da dasturning bajarilishiga ta'sir qiluvchi shart konstruktsiyasi mavjud. Agar (ingliz tilida agar) biror narsa bo'lsa, biror narsa to'g'ri bo'lsa, unda bitta ishni bajaring, aks holda (ingliz tilida boshqa) - boshqasini bajaring.

agar bayonot

Keling, if iborasi qanday ishlashini tezda ko'rib chiqaylik, bu oddiy va ko'p tushuntirishni talab qilmaydi.

agar (shart) (shart rost bo'lsa, bajariladigan kod)

Hammasi oddiy: agar shart rost bo'lsa, u holda (...) blokidagi kod bajariladi.

vardigit = 4; agar (raqam == 4) ( document.write("Raqam 4."); )

Siz bir oz g'alati kod qilishingiz mumkin:

vardigit = 4; agar (to'g'ri) (document.write ("Shart to'g'ri."); )

boshqa bayonot

else ifodasi if ifodasi bilan birgalikda ishlatilishi mumkin. U "aks holda" deb tarjima qilinadi va muqobil kodni belgilaydi.

vardigit = 4; agar (raqam

Ushbu misolda if va else iboralari uchun jingalak qavslarning turlicha yozilishiga e'tibor bering. Demak, yozish umuman majburiy emas, ikkala sintaksis ham to‘g‘ri.

else bayonotidan keyin ketishi mumkin yangi ko'rsatma agar. Shunday qilib, biz bir nechta shartlarni tekshiramiz.

vardigit = 4; agar (raqam

JavaScript-da PHP kabi elseif bayonoti (bir so'z bilan) yo'q.

Agar siz faqat bitta buyruqni bajarishingiz kerak bo'lsa, unda blokli jingalak qavslar (...) kerak emas. Bizning misolimizda ular o'tkazib yuborilishi mumkin:

vardigit = 4; agar (raqam

JavaScript-da yolg'on gapirish

If (shart) operatori qavs ichidagi shartni (ifodani) baholaydi va booliy (to'g'ri yoki noto'g'ri) ga aylantiradi.

Keling, JavaScript-da yolg'on borligini yana bir bor ta'kidlaymiz.

  • 0 raqami (nol).
  • Bo'sh qator "".
  • mantiqiy noto'g'ri :)
  • null qiymat.
  • Qiymat aniqlanmagan.
  • NaN (Raqam emas) qiymati.

Qolganlarning hammasi haqiqat.

Bir nechta mumkin bo'lgan xatolar:

Agar ("noto'g'ri") document.write("Bu haqiqat.
"); agar (noto'g'ri) document.write("Bu haqiqat.

");

Bu erda siz "false" (iqtibos) qatorini mantiqiy turdagi false qiymatidan farqlashingiz kerak.

Agar (" ") document.write("Bu haqiqat.
"); else document.write("Bu noto'g'ri.
");

Bu erda siz " " (bo'shliq ichidagi) qatorni bo'sh "" qatoridan farqlashingiz kerak. Satr ichidagi bo'sh joy uni bo'sh emas, balki o'z ichiga olgan belgi qiladi. Tarjimonga bu harfmi yoki bo‘sh joymi farqi yo‘q – xarakter bu xarakterdir.

JavaScript-dagi boshqa shartli konstruktsiyalar

  • JavaScript kaliti konstruksiyasi.
  • savol belgisi operatori

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

Agar shart a>1 rost, keyin o'zgaruvchi b qiymat belgilang 100 , aks holda b o'zgaruvchiga qiymat beriladi 200 .

Js 3_4-topshiriq. Kodni to'ldiring: var kalit so'zi yordamida 3 ta mahalliy o'zgaruvchilar e'lon qilinadi. Maks o'zgaruvchiga quyidagi uchlik operatorning qiymatini belgilash kerak: agar a b dan katta bo'lsa, a ni qaytaring, aks holda b ni qaytaring.
Kod parchasi:

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


O'z-o'zini nazorat qilish uchun savollar:

  1. Uchlik operatorning sintaksisi nima?
  2. Uchlik operatorning nechta argumenti bor?

JavaScript-dagi switch bayonoti - switch

Javascript switch bayonoti o'zgaruvchini bir nechta qiymatlar uchun sinab ko'rish uchun xizmat qiladi:

Sintaksis:

switch (o'zgaruvchi yoki ifoda) ( case varianti1: //..bayonot bloki.. break case variant2: //..bayonot bloki.. sukut bo'yicha buzilish: //..bayonot bloki.. )

O'zgaruvchi yoki ifodaning qiymati tekshiriladi: har birida hol qiymatlardan biri tekshiriladi, agar mos qiymat bo'lsa, unga mos keladigan u yoki bu bayonot bloki bajariladi. hol.

Standart xizmat so'zi bilan boshlanadigan blokni o'tkazib yuborish mumkin. Agar sanab o'tilgan qiymatlardan birortasi hammasi bo'lmasa, blokirovka iboralari bajariladi hol tog'ri kelmaydi.

Muhim: Break bayonoti o'zgaruvchining har bir ko'rib chiqilgan qiymatidan keyin talab qilinadi (har biridan keyin hol); agar u ishlatilmasa, quyidagi barcha bayonotlar ko'rsatiladi

Operator bilan solishtiring AGAR:

var a = 2; switch(a) (holat 0: // agar (a === 0) 1-holat: // agar (a === 0) alert("Nol yoki bitta"); // keyin chiqish... tanaffus; case 2: // if (a === 2) alert("Ikki"); // keyin chiqish... tanaffus; standart: // else alert("Ko'p"); // aks holda chiqish... )

Bir nechta variantni qanday guruhlash mumkin?

Xuddi shu gaplarni bajarish uchun bir nechta guruhlash mumkin hol. Yuqoridagi misolda bo'lgani kabi:

0-holat: 1-hol: ogohlantirish("Nol yoki bitta"); sindirish; ...

a = 0 va a = 1 bo'lganda, xuddi shu buyruq bajariladi: alert("Nol yoki bitta");

4-misol: Foydalanuvchidan rang kiritishini so'rang. Tarjimani yuborish ingliz tili rang kiritilgan. Rang uchun "ko'k" Va "ko'k" bir xil qiymat hosil qiladi.


✍ Yechim:
  • HTML skeleti va tegi bilan veb-sahifa yarating skript.
  • O'zgaruvchini ishga tushirish rang
  • var color = prompt("Qaysi rang?" );

    var color = prompt("Qanday rang?");

  • O'zgaruvchining qiymatini konstruktsiya bilan tekshiring almashtirish, har bir qiymat uchun tegishli tarjimani chiqarish:
  • kalit (rang) ("qizil": ogohlantirish ("qizil"); tanaffus; "yashil": ogohlantirish ("yashil"); tanaffus; // ...

    Agar o'zgaruvchi bo'lsa rang"qizil" qiymatiga ega, keyin chiqadi modal oyna tarjima - "qizil" va konstruktsiyadan chiqing (break;). Agar o'zgaruvchi bo'lsa rang"yashil" qiymatiga ega, keyin tarjimani ko'rsating - modal oynada "yashil" va konstruktsiyadan chiqing (break;).

  • Gullar uchun "ko'k" Va "ko'k" guruhlashni bajaring:
  • // ... "ko'k" holati: "ko'k" holati: alert("ko'k"); sindirish; // ...

    Agar o'zgaruvchi bo'lsa rang"ko'k" yoki o'zgaruvchan qiymatga ega rang"ko'k" qiymatiga ega, keyin tarjimani ko'rsating - modal oynada "ko'k" va konstruktsiyadan chiqing (break;).

  • Dasturda taqdim etilmagan ranglar uchun chiqishni tashkil qiling:
  • // ... standart: ogohlantirish( "Bizda bu rang haqida ma'lumot yo'q") ) // tugatish tugmasi

    // ... default: alert("y bizda bu rang haqida hech qanday ma'lumot yo'q") ) // kalitning oxiri

  • Skriptni brauzerda sinab ko'ring.

Js 3_6-topshiriq. Quyidagi kod parchasidagi xatolarni toping va tuzating:

14 15 16 17 varnumber = taklif ( "1 yoki 2 raqamini kiriting:"); kalit (raqam) ( "1" holati (document.write ("Bir"); ); tanaffus; "2" holati (document.write ("Ikki"); ); sindirish; sukut bo'yicha ( document.write ( "Siz 1 va 2 dan boshqa qiymat kiritdingiz") ; } ; }

var number = prompt("1 yoki 2 raqamini kiriting:"); kalit (raqam) ( "1" holati (doce.write("Bir"); ); tanaffus; "2" (document.write("Ikki"); ); sindirish; standart (document.write("Siz kiritgansiz 1 va 2" dan boshqa qiymat); )


Js 3_7-topshiriq. Quyidagi kod bajarilganda ekranda nima ko'rsatiladi?

1 2 3 4 5 6 7 8 9 10 11 12 13 var qiymati = "2" ; kalit (qiymat) ("1" hol: "2" hol: "3" hol: hujjat.write ("Salom" ); tanaffus; "4" hol: "5" hol: hujjat.write ("Jahon" ); sukut bo'yicha: document.write("Xato" ); )

var qiymati = "2"; switch (qiymat) ("1" hol: "2" hol: "3" hol: hujjat.write("Salom"); tanaffus; "4" hol: "5" hol: document.write("Dunyo" ); sukut bo'yicha: document.write("Xato"); )


Js 3_8-topshiriq. Foydalanuvchidan raqamni so'rang - filialdagi qarg'alar soni. Kiritilgan raqamga qarab (10 dan ko'p bo'lmagan) xabarni ko'rsating: - Filialda o'tirish 1 qarg'a- Filialda o'tirish 4 qarg'a- Filialda o'tirish 10 qarg'a

  1. Kiritilgan raqamga qarab, so'zning oxiri o'zgaradi. "qarg'a".
  2. Tekshirish uchun javascript switch bayonotidan foydalaning.
  3. Ushbu sahifani natijalar papkasida saqlang (bu keyingi ish uchun foydali bo'ladi).


O'z-o'zini nazorat qilish uchun savollar:

  1. Qachon konstruksiyani shartli operator sifatida ishlatish maqsadga muvofiq? almashtirish?
  2. Bayonotdagi standart blokning maqsadi nima almashtirish?
  3. Konstruksiyada break operatoridan foydalanish kerakmi almashtirish?
  4. Operatorda bir nechta qiymat variantlari uchun guruhlash qanday amalga oshiriladi almashtirish?

JavaScript-da sikl bayonotlari - For

Sintaksis:

for(boshlang'ich hisoblagich qiymati; shart; hisoblagich o'sishi) ( //..bayonot bloki.. )

Muhim: Javascript for loop siklik amallar necha marta takrorlanishi kerakligi oldindan ma'lum bo'lganda qo'llaniladi (loop qancha iteratsiyaga ega)

  • Takrorlash hisoblagichining dastlabki qiymati sifatida tayinlash ifodasi ishlatiladi: masalan, i=0 - sikl hisoblagichi noldan boshlanadi:
  • for(var i = 0; shart; hisoblagich o'sishi) ( //.. bayonot bloki.. )

  • Hisoblagich o'sishi sifatida hisoblagich ko'payishi kerak bo'lgan qadam ko'rsatiladi: masalan, tsiklning har bir iteratsiyasi uning ortishi bilan birga bo'lishini ko'rsatadi. 1 :
  • for(var i = 0; shart; i++) ( //..bayonot bloki.. )

  • Loop sharti hisoblagichning oxirgi qiymati: i10, masalan, tsiklni to'xtatadi:
  • for(var i = 0; i<10; i++) { //..блок операторов.. }

Javascriptda for tsiklidan foydalanish misolini ko'rib chiqing:

5-misol: Raqamlar ketma-ketligini chiqaring 0 1 2 3 ... 9 , har bir raqam - yangi qatordan. 0 1 2 ... 8 9


✍ Yechim:
  • Raqamlar ketma-ketligini ko'rsatish uchun biz uning qiymatini o'zgartirishi kerak bo'lgan for tsikli hisoblagichidan foydalanamiz 0 oldin 9 ketma-ketlikka ko'ra.
  • Shunday qilib, uchun tsikl hisoblagichining boshlang'ich qiymati qiymatini o'rnating 0 ; sifatda tsikl shartlari yakuniy qiymatni belgilash - ii=9; qarshi qadam ga teng bo'lishi kerak 1 (i++), chunki ketma-ketlik a'zolari orasidagi farq bitta:
  • uchun (var i=0; i<10; i++) { document.write(i+"
    "); }

    Misolda, tsikl hisoblagichining qiymatlari ekranda ko'rsatiladi, chunki i++ hisoblagichining o'sishi mos ravishda ekranda paydo bo'ladi. 0 1 2 3 ... 9 , va har bir raqam - yangi qatordan (teg
    ).

  • Skriptni brauzerda sinab ko'ring.

Js 3_9-topshiriq. 1 oldin 15 .

  1. Raqamlar ketma-ketligi sifatida tsikl hisoblagichidan foydalaning uchun.
  2. Qo'shimcha o'zgaruvchi uchun o'zgaruvchi identifikatoridan foydalaning so'm.

Kod parchasi:

(var i=...;...;...)( sum = sum + ...; ) ... uchun

Loopdan chiqish bayonotlari tanaffus Va davom eting JavaScript-da. Operator Chiqish

Break bayonoti butun tsikl tanasining bajarilishini to'xtatadi, ya'ni. javaScript-dagi tsikldan chiqib ketadi.

Davomlash bayoni siklning joriy iteratsiyasining bajarilishini to'xtatib qo'yadi, lekin keyingi takrorlashdan boshlab tsiklning bajarilishini davom ettirayotganda.

Tanaffusning ishlashini ko'rib chiqing va misol yordamida davom iboralarini ko'rib chiqing:

Misol: Kod parchasi algoritmini tushuning. Chiqarish nima bo'ladi?

Kod parchasi:

1 2 3 4 5 6 uchun (var i= 0 ; i< 10 ; i++ ) { if (i== 4 ) continue ; document.write (i+ "
" ); agar (i== 8 ) uzilish; )

uchun (var i=0;i<10;i++) { if (i==4) continue; document.write(i+"
"); agar (i==8) uzilish; )


✍ Yechim:
  • Misolning uchinchi qatorida raqamning sharti mavjud 4 ko'rsatilmaydi: operator davom eting joriyni tugatmasdan tsiklning keyingi iteratsiyasiga o'tadi.
  • 5-qatorda pastadir chiqariladi, lekin raqam 8 ekranga chop etiladi, chunki chiqish bayonoti shartdan oldin keladi (4-qatorda). Uchrashgan tanaffus, tarjimon tsikldan chiqadi.
  • Bu. ekranda bo'ladi: 0 1 2 3 5 6 7 8 - yangi qatordagi har bir raqam.

Js 3_10-topshiriq. dan barcha butun sonlar yig'indisini chop eting 1 oldin 15 , jami sondan tashqari 5 Va 7 .

Chiqish bayonoti

Javasctipt tili dastur kodidan chiqish operatorini - chiqish operatorini taqdim etadi.
Ko'pincha operator foydalanuvchi kiritish xatosini istisno qilish uchun ishlatiladi.


Bir misolni ko'rib chiqing:

6-misol: Foydalanuvchidan raqam kiritishini so'rang. Agar raqam bo'lmasa, xabarni ko'rsating "Raqam kerak!" va dasturni to'xtating.


✍ Yechim:
  • O'zgaruvchini ishga tushirish raqam modal oynada foydalanuvchi tomonidan kiritilgan qiymat:
  • var number = prompt("Iltimos, raqam kiriting");

  • Qatorni butun songa aylantirish uchun parseInt funksiyasidan foydalanib, kiritilgan qiymat raqam ekanligini tekshiring:
  • raqam=parseInt(raqam); // NaN ni qaytaradi - raqam emas

    Agar raqam bo'lmagan kiritilsa, funktsiya NaN qiymatini qaytaradi. raqam emas- raqam emas).

  • O'zgaruvchan qiymatni tekshiring raqam isNaN funksiyasidan foydalanish:
  • x = isNaN(raqam); // agar qiymat raqamli bo'lmasa, true qiymatini qaytaradi

    isNaN funktsiyasi qiymatni qaytaradi rost agar o'zgaruvchi raqam bo'lmasa

  • tomonidan "yolg'on" qoidasi o'zgaruvchan qiymatni tekshirishni tashkil qilish x. Agar qiymat raqamli bo'lmasa, tegishli izohni chop eting va dasturni tugating:
  • if (x)( alert("Raqam kerak!"); chiqish; // dasturdan chiqish)

  • Dasturni davom ettirish uchun (agar kiritilgan qiymat raqam bo'lsa), kiritishni so'rab quyidagi oynani ko'rsating:
  • alert("Ikkinchi raqamni kiriting");// agar siz raqam kiritmasangiz, operator bajarilmaydi.

  • Skriptni brauzerda sinab ko'ring.

O'z-o'zini nazorat qilish uchun savollar:

  1. Loopning uchta parametrini sanab o'ting uchun va ularning maqsadini tushuntiring.
  2. Qaysi iboralar tsikldan chiqish va uni to'xtatish uchun mo'ljallangan? Ulardan foydalanishga misollar keltiring.
  3. Operator nima uchun? Chiqish?

Bitta FORda bir nechta hisoblagich bo'lishi mumkinmi?

Foydalanishda for tsikli bilan qiziqarli ishlash mumkin siklda bir vaqtning o'zida ikkita hisoblagich.
Bir misolni ko'rib chiqing:

7-misol: Skriptdan foydalanib, quyidagi o'zgaruvchan qiymat juftlarini uchta qatorga chop eting: i=0 j=2 i=1 j=3 i=2 j=4


✍ Yechim:
  • For tsiklida ikkita hisoblagichni tashkil qiling: ketma-ketlikni chiqarish uchun i hisoblagichi 0 1 2 , ketma-ketlikni chiqarish uchun j hisoblagichi 2 3 4 :
  • 1 2 3 uchun (i= 0 , j= 2 ; i< 10 , j< 5 ; i++, j++ ) { }

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

    For tsiklining uchta parametrining har biri endi ikkita qiymatga ega bo'lib, ular sanab o'tilgan vergul bilan ajratiladi(masalan, ikkita qiymatli birinchi parametr: i=0, j=2). Parametrlarning o'zi ko'rsatilgan nuqta-vergul orqali(;).

  • Har bir satrdan chiqish uchun tegdan foydalaning
    :
  • 1 2 3 4 uchun (i= 0 , j= 2 ; i< 10 , j< 5 ; i++, j++ ) { document.write ("
    i=" , i, "j=" , j); )

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

Sahifani "parvozda" yaratish: bu qanday?

Keyingi vazifani bajarishdan oldin, misolni ko'rib chiqing html sahifani dinamik ravishda yaratish javascript yordamida.

8-misol:

  • Foydalanuvchi kiritgan ma'lumotlarga asoslanib veb-sahifada markirovka qilingan va raqamlangan ro'yxatlarni dinamik ravishda yaratish kerak: foydalanuvchidan kirishni so'rang ro'yxat ko'rinishi(raqamli (1-raqam) yoki markirovka qilingan (2-raqam)) va keyin ro'yxat elementlari soni.
  • Javobga qarab, kerakli miqdordagi elementlar bilan markirovka qilingan yoki raqamlangan ro'yxat teglarini ko'rsating.
  • Agar mavjud bo'lmagan ro'yxat turi kiritilgan bo'lsa, xabar bering "To'g'ri turni kiriting!" va dasturdan chiqing ().

Keling, teglarni eslaylik:
raqamlangan ro'yxat teglari:

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

Belgilangan ro'yxat teglari:

var listType=prompt("Marklangan ro'yxat uchun "1", raqamlangan ro'yxat uchun "2" kiriting");

  • Kiritilgan qiymatni tekshiring: raqamlangan ro'yxat (1-raqam) uchun tegni chop eting
      , belgilangan (2-raqam) uchun - teg
        . Agar boshqa qiymat kiritilsa, eslatmani chop eting va dasturni tugating:

            ") else ( alert("To'g'ri turni kiriting"); chiqish; )

          • O'zgaruvchini ishga tushirish Kolvo modal oynada foydalanuvchi tomonidan kiritilgan qiymat:
          • var kolvo=prompt("Ballar sonini kiriting");

          • Satr qiymatini raqamli qiymatga aylantirish uchun parseInt funksiyasidan foydalaning:
          • uchun (var i=1; i<=kolvo; i++) document.write("");

          • Ro'yxatlar tegishli teglar bilan yopilganligi sababli, ro'yxat turiga qarab yopish teglarini chiqaring:
          • agar (listType== "1") document.write("" ) else if (listType== "2" ) document.write ("" ) ;

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

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

    1. Skriptni brauzerda sinab ko'ring.
    2. Js 3_11-topshiriq.
      Teglarni ko'rsatadigan skriptni yozing kiritish Kiritilgan raqamga qarab har xil turdagi (boshqaruv elementlari):

      1 - matn maydoni,
      2 - tugmasi,
      3 - radio(almashtirish).

      Ko'rsatilgan teglar soni ham so'ralishi kerak.

      Keling, teglarni eslaylik:

      1 - matn maydoni uchun: 2 tugma uchun: 3 - radio uchun:

      Chiqish namunasi:

      Js 3_12-topshiriq. Javascript for looplar yordamida 9x9 shaxmat taxtasini chizing. "Chizma" taxtasi jadval uchun html teglariga amal qiladi:

      Keling, teglarni eslaylik:

      <jadval chegarasi = "1" kengligi = "30%"> <tr > <td >-</td> -</td> </tr> </jadval>

      --

      • 9 ta chiziqni chizish uchun siz i hisoblagichi bilan tashqi for tsiklini tashkil qilishingiz kerak.
      • Har bir qatorda 9 ta katak chizish uchun j hisoblagich bilan ichki (ichiga joylashtirilgan) for tsiklini tashkil qilish kerak.
      • Hujayra va qator teglarini chizish uchun document.write usulidan foydalaning.

      Natija:

      Qo'shimcha:

      1. Ko'paytirish jadvalini tsikl taymerlari (i va j) yordamida jadval katakchalarida ko'rsating.
      2. Birinchi qator va birinchi ustunni qizil fon bilan ko'rsating (jadval hujayra atributi bgcolor):
        <tdbgcolor="red">-</td>

        -

      Natija:


      O'z-o'zini nazorat qilish uchun savollar:

      1. “Dinamik sahifa yaratish” tushunchasi nimani anglatishini tushuntiring?
      2. Sahifani dinamik ravishda qurishda qaysi til konstruksiyasi ko'proq qo'llaniladi?

      JavaScript-da sikl bayonotlari - While

      while iborasining sintaksisi:

      while (shart) ( //..bayonot bloki.. );

      Misol: Muloqot oynasida ikkitadan gacha kuchlarni ko'rsatish 1000 (2, 4, 8...512). Alert() usulidan foydalaning


      ✍ Yechim:
      • Skript ro'yxati:
      • 1 2 3 4 5 var a = 1 ; esa (a< 1000 ) { a*= 2 ; alert(a) ; }

        var a = 1; esa (a< 1000){ a*=2; alert(a); }

        a*=2 → birikma belgilash amali ishlatiladi: topshiriq bilan birlashtirilgan mahsulot, ya'ni. a = a*2 bilan bir xil

      • Natijani brauzerda sinab ko'ring.

      break va davom iboralari while siklida qanday ishlaydi?

      Misol:

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

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

      Ikkining kuchlari gacha ko'rsatiladi 128 inklyuziv va qiymat 64 o'tkazib yuboriladi. Bular. dialog oynalarida biz quyidagilarni ko'ramiz: 2 4 8 16 32 128

      Js 3_13-topshiriq. Quyidagi kod parchasi qanday qiymatlarni chiqaradi?

      var counter = 5; esa (taymer< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }


      Js 3_14-topshiriq. Qurilish kodini yozing X darajaga qadar y while tsiklidan foydalanish. O'zgaruvchilar qiymatlarini so'rang va natijani alert() bilan ko'rsating.

      Kod qo'shing:

      1 2 3 4 5 6 7 8 9 var x = ...; farq = ...; hisoblagich = 1; raqam = x; while (...) ( chislo= x* ...; counter= ...; ) alert(chislo) ;

      var x = ...; farq = ...; hisoblagich = 1; raqam=x; while (...)( chislo=x*...; counter=...; ) alert(chislo);

      A Raqamning faktorialini topish uchun mo'ljallangan dasturdagi xatoni tuzating:

      1 2 3 4 5 6 7 8 9 10 11 12 13 var counter = prompt("Raqam kiriting" ); var faktorial = 1 ; document.write( "Raqamning faktoriali:"+ hisoblagich + "!= "); do ( if (counter == 0 ) ( faktorial = 1 ; break ; ) faktorial = faktorial / counter; counter = counter + 1 ; ) while (counter > 0 ) ; hujjat.yozish (faktorial);

      var counter = prompt("Raqam kiriting"); var faktorial = 1; document.write("Raqam faktoriali: " + counter + "! = "); do ( if (hisoblagich == 0) ( faktorial = 1; break; ) faktorial = faktorial / hisoblagich; counter = counter + 1; ) while (hisoblagich > 0); hujjat.yozish(faktorial);


      Js 3_16-topshiriq. Foydalanuvchi kiritish uchun dasturni o'zgartiring:

      Foydalanuvchi haqiqatan ham foydalanuvchi nomini kiritmaguncha foydalanuvchi nomini so'rang (ya'ni, maydon haqiqatda to'ldirilsin va bekor qilish tugmasi bosilmaydi). Nom kiritilganda, keyin chiqaring "Salom ism!". hujjat.

      Javascriptdagi xatolarni qanday topish mumkin?

      Ba'zi hollarda sahifadagi kod noma'lum sabablarga ko'ra ishlamaydi. Xatoni qayerdan qidirish kerak? Bunday hollarda try..catch bayonotidan foydalanishingiz mumkin.

      try..catch operatori kod qismini bajarishga harakat qiladi va agar kodda xatolik mavjud bo'lsa, u holda xatoni ekranda ko'rsatish mumkin.
      Xato e.message obyektida saqlanadi.

      Operatorning ishlashini misolda ko'rib chiqing:

      Misol: dasturda xato bo'lgan operatorni yozing. Taxmin qilingan xato kodda xato borligini tekshiring: agar kodda xatolik bo'lsa, xabar bering "xato bilan ishlash: xato nomi". Noto'g'ri bayonotni tekshirgandan so'ng, kodda xatolik bor-yo'qligidan qat'i nazar, xabar bering "tugatish bosqichlari"


      ✍ Yechim:
      • Xato xabari sifatida biz xato bilan yozilgan prompt() usulidan foydalanamiz - promt(). Xato xabarini sinash blokiga qo'shing:
      • ogohlantirish ("oldin"); urinib ko'ring ( promt ("raqamni kiriting"); // xato bilan bayonot)

        Ingliz tilidan sinab ko'ring. - "sinab ko'ring", shuning uchun biz try iborasini xato bo'lishi mumkin bo'lgan kod bo'lagi oldiga qo'yamiz (bizning holatlarimizda haqiqatan ham xatolik mavjud).

      • Xato xabari catch blokiga joylashtirilishi kerak:
      • 6 7 8 9 tutmoq (e) ( ogohlantirish( "xato bilan ishlash:"+e.xabar); )

        catch(e) ( alert("xato bilan ishlash: "+e.xabar); )

        Agar haqiqatan ham xatolik bo'lsa, catch bayonoti (inglizchadan "tutish" dan) bu xatoni e ob'ektida saqlaydi. Kelajakda u dialog oynasida ko'rsatilishi mumkin - e.message .

      • Kodda xatolik bor-yo'qligidan qat'i nazar, ko'rsatmoqchi bo'lgan yakuniy xabarni qo'ying, uni finally blokiga qo'ying:
      • nihoyat ( alert("tugatish amallari"); ) alert("keyin");

        Agar hali ham xatolik mavjud bo'lsa, tarjimon, bizning misolimizda chiqarilgandan so'ng, catch blokini bajarishga o'tadi va nihoyat (inglizcha "tugatish", "nihoyat" dan), nima bo'lishidan qat'i nazar, har doim bajariladi. xatolik bormi yoki yo'qmi. Agar catch blokida xatolik bo'lsa ham.

      Muhim: Qurilishdagi yakuniy blok ixtiyoriy.


      Js 3_17-topshiriq. Yuqoridagi misolni quyidagi o'zgartirishlar bilan ishga tushiring:

    3. Finally blokini olib tashlang va kodning ishlashini tomosha qiling.
    4. Xato operatorini xatosiz bilan almashtiring va natija qanday bo'lishini ko'ring.
    5. Xulosa:

      Dars quyidagi javascript tili operatorlari va konstruksiyalarini qamrab oldi:

      Javascript shartli bayonotlari:

    6. agar bayonot
    7. Shartli tayinlash (uchlik operator)
    8. almashtirish bayonoti
    9. Loop bayonotlari:

    10. loop uchun
    11. while tsikli
    12. do... while loop
    13. uchun... tsiklda
    14. Yakuniy vazifa Js 3_18.
      Ikki kishi uchun o'yin yarating:

      1. Dastur birinchi o'yinchidan raqamni kiritishni so'raydi 1 oldin 100 (ikkinchi o'yinchi kiritilgan raqamni ko'rmaydi). Keyin ikkinchi o'yinchidan kiritilgan raqamni taxmin qilish so'raladi. Javob xabardir "bir necha" yoki "juda ko'p" kiritilgan javobga qarab. Agar o'yinchi to'g'ri taxmin qilsa, tabriklar ko'rsatiladi. Agar u taxmin qilmasa, o'yin davom etadi (raqam haqiqatda taxmin qilinmaguncha).
      2. Urinishlar sonini hisoblang va raqam taxmin qilinganda natijani qaytaring.


      O'z-o'zini nazorat qilish uchun savollar:

      1. Qachon For In tsiklidan foydalanish maqsadga muvofiq? Uning ishlatilishiga misol keltiring.
      2. try..catch bayonotining maqsadi nima?
      3. Har bir try..catch bayonot blokining maqsadini tushuntiring.

      Agar xatolikni sezsangiz, matn qismini tanlang va Ctrl + Enter tugmalarini bosing
  • UMUSHISH: