Javascript döngəsində iterasiyaların hesablanması. Velosipedlər. for loop necə işləyir




Müasir proqramlaşdırma dili sintaksisinin formalaşma tarixi Kainatın formalaşması proseslərini dərk etməyə yaxındır. Başlanğıcda nə və necə idi... Amma indi hər şey sadə və əlçatandır.

Nəhayət, alqoritm həmişə ardıcıl əmrlər zənciridir. Proqramlaşdırmada paralellik bir şəkildə birləşmiş ardıcıllıqlar toplusudur. ardıcıl və ya paralel komanda zənciri heç vaxt bu qədər praktik olmamışdır. Etiketlər, keçidlər və şərtlər - hər hansı bir həll üçün hər şey kifayət idi. Funksional dillər bu fikirləri əhəmiyyətsiz hala gətirdi, lakin kodun hissələrini təkrarlamaq ehtiyacı qalır.

Brauzer: DOM, onun dili + server

JavaScript-də funksional ideyalar xüsusi məna kəsb etsə də, döngələr qalır. "Lisp" və "Prolog" dan nəsə qalan ola bilər, lakin çox güman ki, JavaScript-in yaşadığı sahə orada olanlara gətirib çıxardı, lakin bunun son həll yolu olması şübhəlidir.

JavaScript səhifəni qəbul edən, onu DOM-da təhlil edən və ilk skripti işlədən brauzerin daxilində işləyir. Bütün digər səhifələr, o cümlədən bu səhifəyə yüklənənlər, dili manipulyasiya edən tərtibatçının işidir, bunun vasitəsilə serverdəki kodu çağırmaq və nəticəni AJAX mexanizmindən istifadə etməklə əldə etmək olar.

Brauzer JavaScript kodunu icra edir, o, brauzer obyektlərindən, o cümlədən məlumatı serverə ötürən və HTML işarələməsi, üslublar və kodun özü ola biləcək cavab alan obyektlərdən istifadə edə bilər. Cavab massivlər və obyektlərlə təmsil oluna bilər. JavaScript-də döngələrdən istifadə nöqtəsi itir, onlarsız etmək üçün çoxlu imkanlar var və sonsuz əmrlər ardıcıllığı ilə brauzeri asmaq riski ən yaxşı həll yolu deyil.

Döngələrin özləri əksər JavaScript sintaktik konstruksiyalarında mövcuddur; tərtibatçı standart konstruksiyaları öz funksiyaları ilə tamamlaya bilər.

JavaScript-in Kod Məkanında Mövqeyi

Müasir bir proqramçı heç düşünmür ki, while, do while, ...) istifadə etdiyi son nəticədə sayğac yoxlamaları, yəni şərtlərlə kəsilən bir sıra prosessor dövrləri, ikili əməliyyatların sadə ardıcıllığıdır.

Maşın dili səviyyəsində belə bir döngə yoxdur: adi əmrlərin, şərti əməliyyatların və keçidlərin birləşməsi var. Bir səviyyə yuxarı, brauzerin və JavaScript tərcüməçisinin hazırlanması üçün hansı alətdən istifadə olunmasından asılı olmayaraq, döngələr mütləq olacaq. Üstəlik, “kod parçaları” müxtəlif vaxtlarda və müxtəlif proqramçılar nəsilləri tərəfindən təqdim olunacaq. Yuxarıdakı mərtəbə JavaScript "binasıdır". Sintaksisi müasir JavaScript döngələrini təklif edir.

JS gözəl bir dildir: praktik, müasir və tam funksiyalı. Bu alətin sintaksisinə zamanın sınağından çıxmış və istənilən alqoritmin sarsılmaz təməlinə çevrilmiş bütün konstruksiyalar daxildir. Ancaq dövrələr həqiqətən lazımdırmı? Proqramlaşdırmada irəliləyiş tez-tez özünə fundamental xarakterli suallar verir, lakin yalnız bəzi hallarda öz həllini tapırdı.

Obyektiv əsaslar

Bir dövrün yalnız iki variantı ola bilər: şərtlə və ya sayğacla, lakin mahiyyətcə (ən aşağı səviyyədə) hər hansı bir dövr yalnız şərtlə olur. Bəzi dillərdə "hər biri üçün" dövrü var. JavaScript-də foreach döngələri obyekt konstruksiyasında dayaq ilə təmsil olunur, lakin siz array.forEach(...) variantından istifadə edə bilərsiniz.

Hər halda, iki variant var: proqramçının bütün alqoritmlərini, hətta şərh dillərində yazanları da yerinə yetirən proqramçının əmrlər zəncirini təkrarlamaq üçün başqa variantları yoxdur: o, nəyisə yenidən icra edə bilər:

  • sayğac sayar;
  • şərt yerinə yetirildiyi müddətcə.

JavaScript tipik tərcüməçidir. Onun özəlliyi: o, brauzer daxilində işləyir, onun obyektlərindən istifadə edir və həm səhifə brauzerə yüklənərkən, həm də onun işləməsi zamanı müştəri tərəfində alqoritmləri icra etməyə imkan verir.

Sadə döngə bir-bir

JavaScript-də foreach döngələri funksiyanı massivə tətbiq etmək kimi görünür:

Belə dövrələrin istifadəsi heç bir çətinlik yaratmır. Formal olaraq, belə bir dövr yoxdur. Massivin elementlərinə ardıcıl funksiya çağırışı var.

Sayğacda döngə

For loopları JavaScript-də daha tanış görünür:

Burada sayğac düstura görə dəyəri dəyişən dəyişəndir və şərt dövrün bitməsinin əlamətidir. Düstur və şərtə döngə dəyişənini daxil etmək lazım deyil. Ancaq dövrün bitdiyi an üzərində nəzarət tamamilə onların məzmunu ilə müəyyən edilir.

Şərti döngələr

JavaScript, vəziyyətin nə vaxt yoxlanılması lazım olduğundan asılı olaraq while ilə seçim təklif edir. Döngənin gövdəsi bir dəfə də olsa yerinə yetirilə bilməzsə, bu bir şeydir, gövdənin ən azı bir dəfə yerinə yetirilməsi lazımdırsa, bu başqadır:

Birinci halda, while konstruksiyasını şərh edərkən, JavaScript əvvəlcə şərti yoxlayır və əgər bu doğrudursa, dövrəni yerinə yetirir. İkinci halda, ilk növbədə döngə yerinə yetiriləcəkdir. Əgər do while konstruksiyasının şərtində göstərilən dəyişənlərin dəyişdirilməsi nəticəsində false olarsa, dövrənin icrası dayanacaq.

Sadə alqoritmlərin kütləvi birləşmələri

Hər hansı bir alqoritmin əsas vəzifəsi (komponent hissəsi) tapmaq və yalnız bundan sonra nə edəcəyinə dair qərar qəbul etməkdir. Ən primitiv axtarış variantı dəyişənə daxil olmaqdır, nəticə birbaşa əldə edilir. Bir çox dəyişən varsa və ya onun çoxlu dəyəri (massiv) varsa, dəyəri seçmək üçün skriptin sonrakı davranışını təyin edəcək bir şey tapmaq lazımdır.

Bu sadə doktrina JavaScript-də əks döngəni bütün problemlər üçün bir növ panacea etdi. Müasir kompüterlər sürətlidir. Brauzerdə skriptləri işə salmaq üçün çox vaxt var, tələsməyə ehtiyac yoxdur. Bir şey naminə bir şeydən keçmək həmişəkindən daha asandır. Nəticədə, for loopları JavaScript-də çox populyarlaşdı.

Görünür, bunda pis bir şey yoxdur. Amma bu yanaşmanın arxasında bu və ya digər alqoritmin yazıldığı mahiyyət asanlıqla itirilir. Məlumat mənasız deyil. Hər hansı bir proqramın yazıldığı hər şeyin mənası var. JavaScript-də for looplarından həddən artıq istifadə etməklə, tərtibatçı tələb olunan obyekti tanıya və adekvat alqoritm yarada bilməz.

Funksionallıq, reallığın başqa bir əksi

JavaScript döngələrindən istifadə edərək, eyni tipli kodun nümunələri funksiyalar kimi təqdim edilə bilər - alqoritm dərhal çevriləcək, skriptin əsas hissəsi ölçüdə azalacaq, hər şey oxunaqlı və başa düşülən olacaq.

Bu, köklü şəkildə yeni bir həll deyil, lakin mahiyyət etibarilə digər dil konstruksiyalarından kənara çıxmır. Xüsusilə, JavaScript döngələri klassik split() funksiyasında tapıla bilər:

var cResult = "9,8,7,6,5,4" ;
var aResult = cResult .split ( "," );

Burada heç bir döngə yoxdur, amma bunu "," simvolunu axtarmaq və bir nömrəni digərindən ayırmaq üçün istifadə etməkdən başqa necə həyata keçirmək olar.

Bunun split() funksiyası daxilində necə həyata keçirildiyindən mücərrəd olaraq, siz JavaScript-i istifadə nöqteyi-nəzərindən daha əlverişli olan döngələrdən istifadə edən öz funksionallığınızla əlavə edə bilərsiniz. Bu yanaşmanın müvafiq olaraq hər bir tapşırıq üçün funksionallığın inkişafına səbəb olması vacibdir, lakin ümumi hələ də bu yanaşma ilə olacaq.

Bu allt(), padc(), padl() və padr() funksiyaları JavaScript-də olmayan bir şeydir, lakin bəzən sətirdən boşluqları silmək və ya sətir uzunluğunu solda, sağda və ya sətirdə hizalamaq lazımdır. hər iki tərəf. Bu funksiyaların gövdələrində JavaScript döngələri var. Sadə, əlçatan və bundan istifadə edən alqoritm heç vaxt qəzaya uğramayacaq.

Ədədləri onaltılıq sistemdən 10-cu say sisteminə və əksinə, daha sadə desək, bir məlumat formatından digərinə çevirmək funksiyalarının variantları burada do while döngələrindən istifadə etməklə yerinə yetirilir. Çox yığcam və səmərəli dil sintaksisi.

Düzgün dövrlər - reallığın əksi

JavaScript digər proqramlaşdırma dillərinə uyğun gəlmir və versiyaların müxtəlifliyinə görə fərqlənmir və ən əsası o, sintaksisi dəyişməyə deyil, onu inkişaf etdirməyə və genişləndirməyə çalışır.

JS-dən istifadə edən proqramçının düşüncə tərzi fərqlidir bir PHP proqramçısının düşüncəsindən (xüsusən və ümumiyyətlə, digər dillər istisna olmaqla, "Prolog" və onun ardıcılları ümumi əsas cərəyana daxil edilmir), alqoritm dəyişənlər, massivlər, təyinat operatorları və siklik konstruksiyalarla məhdudlaşmadıqda.

Təsəvvür etsək ki, dövrlər yoxdur, lakin problemi həll etmək lazımdır, onda ən sadə variant (gözləri bağlamaq) proqramın informasiya məkanında nöqtə və ya nöqtələr sistemi olan məlumatları emal etdiyini qəbul etməkdir. Nöqtə nədir və ballar sistemi nədir, konkret mövzu sahəsinə aid məsələdir. Bir proqramçı üçün bu tezis o deməkdir ki, sadə verilmiş və sadə verilənlər toplusu var. Təbii ki, bir səviyyənin sadə verilənləri aşağıda bir səviyyə üçün sistem və yuxarı səviyyə üçün nöqtə olacaqdır.

Bu yanaşma ilə nöqteyi-nəzərdən məqsəd onun mahiyyətini metodları ilə göstərməkdir. Bir nöqtə supersistemdə olduqda, sistemin funksiyası onun mahiyyətini ona daxil olan nöqtələrin mahiyyətlərinin toplusu kimi təzahür etdirməkdir.

Bu yanaşma proqramlaşdırma dilləri ideyası qədər qədimdir, lakin hələ də proqramlaşdırmada adekvat şəkildə əks olunmamışdır. Bir çox proqramçı düzgün düşünür, lakin onların yaradıcılığının nəticəsi çox şey arzuolunmazdır.

Bəzən dünyanı görmək üçün pərdə taxmaq kömək edir!

Döngələr eyni təlimatları təkrar-təkrar yerinə yetirmək üçün nəzərdə tutulmuşdur.

JavaScript-də 4 növ döngə var:

  • for loop. Bu döngə eyni təlimatların təkrarlarının dəqiq sayı məlum olduqda istifadə olunur.
  • Döngə zamanı. Verilmiş şərt doğru olduğu müddətcə eyni təlimatları yerinə yetirmək üçün nəzərdə tutulmuşdur.
  • Do...while döngəsi. Bu dövrə while dövrəsinə bənzəyir, lakin şərt təkrar göstərişləri yerinə yetirməzdən əvvəl yox, onlardan sonra yoxlanılır. Beləliklə, bir müddət dövrəsindən fərqli olaraq, şərt ilkin olaraq yanlış olsa belə, ifadələr ən azı bir dəfə yerinə yetiriləcəkdir.
  • Döngü üçün.... O, obyektdəki bütün xassələri və ya massivdəki hər bir elementi təkrarlamaq lazım olduqda istifadə olunur.
döngə üçün

Döngü sintaksisi üçün:

For (insiallaşdırma; şərt; yekun ifadə) ( /* döngə gövdəsi */ )

  • inisializasiya, döngə yerinə yetirilməzdən əvvəl bir dəfə yerinə yetirilən ifadədir; adətən sayğacın işə salınması üçün istifadə olunur;
  • şərt hər iterasiyadan əvvəl doğruluğu yoxlanılan ifadədir; ifadə doğru olaraq qiymətləndirilirsə, iterasiya yerinə yetirilir, əks halda for döngüsü çıxır;
  • yekun ifadə hər təkrarlamanın sonunda yerinə yetirilən ifadədir; adətən sayğac dəyişdirmək üçün istifadə olunur;
  • loop gövdəsi - təkrarlanması lazım olan təlimatlar.

Konsolda 1-dən 9-a qədər rəqəmləri çap edəcək bir dövrə nümunəsinə baxaq:

Var i; // 1-dən 9-a qədər, 1-lik addımlarla (i = 1; i, birdən çox element seçməyə imkan verir). For döngəsi i dəyişənini elan edir və onun qiymətini 0-a təyin edir. O, həmçinin i-nin elementdəki elementlərin sayından az olduğunu yoxlayır, if ifadəsini yerinə yetirir və dövrədən hər keçəndən sonra i-ni bir artırır.

Bəzi musiqi janrlarını seçin və sonra aşağıdakı düyməni basın: R&B Jazz Blues New Age Classical Opera

howMany(selectObject) funksiyası ( var numberSelected = 0; for (var i = 0; i)< selectObject.options.length; i++) { if (selectObject.options[i].selected) { numberSelected++; } } return numberSelected; } var btn = document.getElementById("btn"); btn.addEventListener("click", function(){ alert("Выбрано элементов: " + howMany(document.selectForm.musicTypes)) });

do...wile loop

Do...while döngəsi verilən şərt doğru olduğu müddətcə təkrarlanır. do...while ifadəsi belə görünür:

Ifadələr edin while(şərt);

ifadələr şərt doğru olduğu müddətcə yerinə yetirilir. Çoxsaylı ifadələrdən istifadə etmək üçün onları qruplaşdırmaq üçün blok ifadəsindən ( ... ) istifadə edin. Şərt doğru olarsa, ifadələr yenidən yerinə yetiriləcək. Hər keçidin sonunda vəziyyət yoxlanılır. Şərt yalnışdırsa, icra dayandırılır və idarəetmə do...while -dən sonra ifadəyə ötürülür.

Misal

Aşağıdakı misalda do döngəsi ən azı 1 dəfə yerinə yetiriləcək və i 5-dən az olduğu müddətdə yenidən işləyəcək.

(i += 1; console.log(i); ) isə (i< 5);

while loop

while döngüsü şərt doğru olduğu müddətcə ifadələri yerinə yetirir. Bu belə görünür:

while (şərt) ifadələri

Şərt yanlış olarsa, dövrədəki ifadələr icrasını dayandırır və idarəetmə döngədən sonrakı ifadəyə keçir.

Döngədəki ifadələr yerinə yetirilməzdən əvvəl şərtin doğru olması yoxlanılır. Şərt doğrudursa, ifadələr yerinə yetirilir və sonra şərt yenidən sınaqdan keçirilir. Şərt yanlışdırsa, icra dayandırılır və idarəetmə while -dan sonra ifadəyə keçir.

Çoxsaylı ifadələrdən istifadə etmək üçün onları qruplaşdırmaq üçün ifadə blokundan ( ... ) istifadə edin.

Misal 1

Aşağıdakı while döngüsü n üçdən az olduğu müddətdə işləyir:

Var n = 0; var x = 0; isə (n< 3) { n++; x += n; }

Hər təkrarlama ilə dövrə n-i artırır və həmin dəyəri x-ə əlavə edir. Beləliklə, x və n aşağıdakı dəyərləri alır:

  • Birinci keçiddən sonra: n = 1 və x = 1
  • İkincidən sonra: n = 2 və x = 3
  • Üçüncü keçiddən sonra: n = 3 və x = 6

Üçüncü keçiddən sonra şərt n< 3 становится ложным, поэтому цикл прерывается.

Misal 2

Sonsuz döngələrdən çəkinin. Döngə şərtinin nəticədə yalan olduğuna əmin olun; əks halda, dövr heç vaxt kəsilməyəcək. Növbəti while döngəsindəki ifadələr əbədi olaraq işləyəcək, çünki şərt heç vaxt yalan olmayacaq:

isə (doğru) (console.log("Salam, dünya"); )

Etiket

Etiket proqramınızda hansısa yerə istinad etməyə imkan verən identifikatoru olan ifadədir. Məsələn, siz döngəni göstərmək üçün etiketdən istifadə edə bilərsiniz və sonra proqramın dövrəni pozmalı və ya onu icra etməyə davam etməli olduğunu göstərmək üçün fasilə və ya davam ifadələrindən istifadə edə bilərsiniz.

Etiket sintaksisi aşağıdakı kimidir:

Etiket: operator

Məna etiketlər qorunan söz olmayan hər hansı etibarlı JavaScript identifikatoru ola bilər. Operator , etiketdən sonra göstərdiyiniz hər hansı ifadə ola bilər.

Misal

Bu nümunədə markLoop bir müddət dövrəsini təmsil edir.

MarkLoop: while (theMark == true) (doSomething(); )

fasilə

Döngəni qırmaq, nəzarəti dəyişmək və ya etiket ifadəsi ilə birlikdə fasilə ifadəsindən istifadə edin.

  • Siz etiketsiz break istifadə etdiyiniz zaman o while , do-while və for looplarını pozur və ya dərhal idarəetməni növbəti ifadəyə keçir.
  • İşarə ilə break istifadə etdiyiniz zaman o, xüsusi olaraq qeyd olunan ifadəni pozur.

Operator sintaksisi belə ola bilər:

  • fasilə;
  • fasilə Etiket;
  • Sintaksisin birinci forması dövranı tamamilə pozur və ya idarəetməni dəyişdirir; ikincisi xüsusi təyin olunmuş ifadəni kəsir.

    Misal 1

    Aşağıdakı misal, dəyəri theValue olan elementi tapana qədər massivdəki elementlər arasında təkrarlanır:

    Üçün (i = 0; i< a.length; i++) { if (a[i] == theValue) { break; } }

    Misal 2: Etiketin kəsilməsi var x = 0; var z = 0 labelCancelLoops: while (true) (console.log("Xarici döngə: " + x); x += 1; z = 1; while (true) (console.log("Daxili döngə: " + z) ; z += 1; if (z === 10 && x === 10) ( break labelCancelLoops; ) else if (z === 10) ( break; ) ) ) davam edin

    Davam ifadəsi while , do-while , for döngələrində bir addım irəli getmək və ya etiketə keçmək üçün istifadə olunur.

    • Siz etiketsiz continue istifadə etdikdə o, while , do-while və for looplarının cari iterasiyasını pozur və dövrəni növbəti iterasiyadan davam etdirir. break-dən fərqli olaraq, davam etmək döngənin icrasını tamamilə dayandırmır. while dövrəsində o, vəziyyətə keçir. Və bu addımı artırır.
    • Siz etiketlə davam etsəniz, o, həmin etiketlə döngəyə tətbiq olunur.

    Davam sintaksisi belə görünə bilər:

  • davam etdirmək;
  • davam et Etiket ;
  • Misal 1

    Aşağıdakı misal i dəyəri 3 olduqda işə salınan davam ifadəsi olan while dövrəsini göstərir. Beləliklə, n 1, 3, 7 və 12 dəyərlərini alır.

    Var i = 0; var n = 0; isə (i< 5) { i++; if (i == 3) { continue; } n += i; }

    Misal 2

    İfadə qeyd edildi checkiandj işarələnmiş ifadəni ehtiva edir checkj. Davamla qarşılaşdıqda, proqram cari iterasiyanı dayandırır checkj və növbəti iterasiyaya başlayır. Hər dəfə qarşılaşdığınızda davam edin, checkjşərt yalan olduğu müddətcə növbəti iterasiyaya davam edir. Bölmənin qalığını hesabladıqdan sonra false qaytarıldıqda checkiandj, checkiandjşərti false qaytardığı müddətcə növbəti iterasiyaya davam edir. Yanlış qaytarıldıqda, proqram after ifadəsi ilə icraya davam edir checkiandj.

    Davam et işarəsi varsa checkiandj, proqram işarənin əvvəlindən davam edə bilər checkiandj.

    Checkiandj: isə (i< 4) { console.log(i); i += 1; checkj: while (j >4) ( console.log(j); j -= 1; əgər ((j % 2) != 0) ( yoxlamağa davam etj; ) console.log(j + "cüt."); ) console.log("i = " + i); console.log("j = " + j); )

    üçün...in

    for...in ifadəsi obyektin bütün sadalana bilən xassələri vasitəsilə təkrarlanır. JavaScript hər bir fərdi xüsusiyyət üçün müəyyən edilmiş ifadələri yerinə yetirəcək. for...in döngəsi belə görünür:

    Üçün (obyektdə dəyişən) (ifadələr)

    Misal

    Aşağıdakı funksiya obyekti və onun adını arqument kimi qəbul edir. Daha sonra o, obyektin bütün xassələrini təkrarlayır və xassə adlarını və onların dəyərlərini ehtiva edən sətri qaytarır.

    dump_props(obj, obj_name) ( var nəticə = ""; for (var i in obj) ( nəticə += obj_name + "." + i + " = " + obj[i] + "
    "; ) nəticə += ""; nəticəni qaytarın; )

    Marka və model xüsusiyyətləri olan avtomobil obyekti üçün, nəticə olacaq:

    Car.make = Ford car.model = Mustang

    Nümunə № 2

    Siz həmçinin dəyəri açarla göstərə bilərsiniz:

    Qoy obj = (model: "AUDI A8", il: "2019", rəng: "qəhvəyi") (obj-də açar) ( console.log(`$(key) = $(obj)`); ) // model = AUDI A8 // il = 2019 // rəng = qəhvəyi

    Massivlər

    Massivin bütün elementlərini təkrarlamaq üçün for...in istifadə etmək cazibədar olsa da, bu operator ədədi indekslərə əlavə olaraq istifadəçi tərəfindən müəyyən edilmiş xassələrin adını qaytarır. Beləliklə, massivlərlə qarşılıqlı əlaqədə olarkən rəqəmsal indekslər üçün standart fordan istifadə etmək daha yaxşıdır, çünki xassələri və metodları əlavə etmək kimi massivdə dəyişiklik etsəniz, massiv elementlərinə əlavə olaraq, for...in ifadəsi istifadəçi tərəfindən müəyyən edilmiş xassələri təkrarlayır.

    üçün( dəyişən of obyekt) { ifadələri}

    Aşağıdakı nümunə for...of və for...döngülər arasındakı fərqi göstərir. For... xassə adları üzərində iterasiyalarda, for...of xüsusiyyət dəyərləri üzərində təkrarlanır:

    arr = olsun; arr.foo = "salam"; for (let i in arr) ( console.log(i); // "0", "1", "2", "foo" çap edir ) for (let i of arr) ( console.log(i); / / çıxışlar "3", "5", "7")

    Son yeniləmə: 04/08/2018

    Döngələr müəyyən şərtlərdən asılı olaraq bir hərəkəti dəfələrlə yerinə yetirməyə imkan verir. JavaScript aşağıdakı növ döngələrə malikdir:

      üçün...in

      üçün..of

      isə

      edərkən

    döngə üçün

    For döngəsinin aşağıdakı formal tərifi var:

    Üçün ([əks başlatma]; [şərt]; [əks dəyişiklik])( // hərəkətlər )

    Məsələn, massivin elementləri arasında təkrarlamaq üçün for loopundan istifadə edirik:

    Var insanlar = ["Tom", "Alice", "Bob", "Sam"]; for(var i = 0; i= 0; i--)( console.log(insanlar[i]); )

    Bu halda massiv sondan çıxarılır və massiv i = 3-dən i = 0-a qədər təkrarlanır.

    üçün...in

    for..in döngəsi massivlər və obyektlər arasında təkrarlamaq üçün nəzərdə tutulmuşdur. Onun formal tərifi belədir:

    Üçün (massivdəki indeks) ( // hərəkətlər )

    Məsələn, massiv elementləri üzərində təkrarlayaq:

    Var insanlar = ["Tom", "Alice", "Bob", "Sam"]; for(var index in people)( console.log(people); )

    üçün...of

    for...of döngəsi for...in dövrəsinə bənzəyir və massivlər kimi kolleksiyalar vasitəsilə təkrarlamaq üçün nəzərdə tutulub:

    İstifadəçilərə icazə verin = ["Tom", "Bob", "Sam"]; for(istifadəçilərə icazə verin) console.log(val);

    Təkrarlanan cari kolleksiya elementi val dəyişəninə yerləşdirilir, dəyəri daha sonra konsolda çap olunur.

    while loop

    Bəzi şərt doğru olduğu müddətcə while dövrəsi işləyir. Onun formal tərifi belədir:

    while(şərt)( // hərəkətlər )

    Yenə while istifadə edərək massiv elementlərini göstərəcəyik:

    Var insanlar = ["Tom", "Alice", "Bob", "Sam"]; var indeksi = 0; isə (indeks< people.length){ console.log(people); index++; }

    Buradakı while dövrü indeksin dəyəri massivin uzunluğuna bərabər olana qədər yerinə yetiriləcək.

    edərkən

    Do loopunda əvvəlcə dövrə kodu yerinə yetirilir, sonra isə while ifadəsindəki şərt yoxlanılır. Və bu şərt doğru olduğu müddətcə dövr təkrarlanır. Misal üçün:

    Var x = 1; do( console.log(x * x); x++; )while(x< 10)

    Burada dövr kodu x 10 olana qədər 9 dəfə işləyəcək. Do döngüsü while ifadəsindəki şərt doğru olmasa belə, hərəkətlərin ən azı bir dəfə yerinə yetirilməsinə zəmanət verir.

    İfadələri davam etdirin və kəsin

    Bəzən tamamlamadan əvvəl bir döngədən çıxmaq lazımdır. Bu halda biz break ifadəsindən istifadə edə bilərik:

    < array.length; i++) { if (array[i] >10) fasilə; document.write(massiv[i] + "
    "); }

    Bu döngə massivin bütün elementləri arasında təkrarlanır, lakin son dörd element brauzerdə göstərilməyəcək, çünki test if (massiv[i] > 10) massiv boyunca təkrarlanan zaman dövrəni fasilə ifadəsi ilə kəsəcək. element 12.

    Əgər təkrarlamanı atlamağımız lazım olsa, lakin dövrədən çıxmasaq, davam ifadəsindən istifadə edə bilərik:

    Var massivi = [ 1, 2, 3, 4, 5, 12, 17, 6, 7 ]; üçün (var i = 0; i< array.length; i++) { if (array[i] >10) davam etdirmək; document.write(massiv[i] + "
    "); }

    Bu halda, proqram massivdə 10-dan çox rəqəmlə qarşılaşarsa, o zaman bu nömrə brauzerdə göstərilməyəcək.