/ / Bucle JavaScript: for, while, do-while

Bucle JavaScript: for, while, do-while

Istoria formării sintaxei moderne a unui limbaj de programare este asemănătoare cu cunoașterea proceselor de formare a Universului. Ce și cum a fost la început... Dar acum totul este simplu și accesibil.

Bucle JavaScript

Algoritmul este întotdeaunalanț secvențial de comenzi. Paralelismul în programare este o colecție de secvențe cumva combinate. Un algoritm de buclă nu a fost niciodată mai practic decât un lanț de comenzi în serie sau paralel. Etichetele, tranzițiile și condițiile erau suficiente pentru orice soluție. Limbajele funcționale au lipsit aceste idei de semnificație, dar nevoia de repetare a secțiunilor de cod a rămas.

Browser: DOM, limba sa + server

În JavaScript, buclele rămân, deși funcționaleideile au căpătat un sens aparte. S-ar putea să fie unele resturi de la Lisp și Prolog, dar cel mai probabil zona în care trăiește JavaScript a dus la asta, dar este îndoielnic că aceasta este ultima soluție.

În timp ce JavaScript

JavaScript rulează în interiorul browserului careprimește pagina, o analizează în DOM și rulează primul script. Toate celelalte pagini, inclusiv cele încărcate pe aceasta, sunt opera unui dezvoltator care manipulează limbajul prin care poate fi apelat codul de pe server și rezultatul obținut folosind mecanismul AJAX.

Browserul execută cod JavaScript care poateutilizați obiecte de browser, inclusiv cel care oferă transferul de informații către server și primirea unui răspuns, care poate fi atât markup și stiluri HTML, cât și codul real. Răspunsul poate fi reprezentat prin matrice și obiecte. Se pierde sensul utilizării buclelor în JavaScript, există o mulțime de oportunități de a te descurca fără ele, iar riscul de a suspenda browserul cu o secvență nesfârșită de comenzi nu este cea mai bună soluție.

Buclele sunt de fapt prezente în majoritatea constructelor sintactice JavaScript; dezvoltatorul poate completa constructele standard cu propriile sale funcții.

Poziționarea JavaScript în spațiul de cod

Un programator modern nici nu crede astabucla pe care o folosește (for, while, do while, ...) este în cele din urmă o serie de cicluri (cicluri) de procesor, o simplă succesiune de operații binare întrerupte de verificări ale contorului, adică de condiții.

face în timp ce

Ca atare, nu există nicio buclă la nivelul limbajului mașinii:există o combinație de comenzi obișnuite, operații condiționate și sărituri. Cu un nivel mai sus, indiferent de instrumentul folosit pentru a dezvolta browserul și interpretul JavaScript, buclele vor fi clare. Mai mult, „bucăți de cod” vor fi prezentate în momente diferite și de către diferite generații de programatori. Un etaj mai sus se află „clădirea” JavaScript. A cărui sintaxă oferă bucle JavaScript moderne.

JS este un limbaj grozav:practic, modern și complet funcțional. Sintaxa acestui instrument include toate construcțiile care au trecut testul timpului și au devenit fundamentul de nezdruncinat al oricărui algoritm. Dar sunt buclele cu adevărat necesare? Progresul în programare și-a pus adesea întrebări de natură fundamentală, dar numai în câteva cazuri a găsit o soluție.

Motive obiective

Ciclul poate avea doar două opțiuni:în funcție de condiție sau de contor, dar în esență (la cel mai scăzut nivel) orice buclă este doar condiționată. În unele limbi, există un ciclu „pentru fiecare”. În JavaScript, buclele foreach sunt reprezentate de prop în construcția obiectului, dar puteți folosi varianta array.forEach (...).

JavaScript pentru bucle

În orice caz, există două opțiuni:codul mașină care în cele din urmă execută toți algoritmii programatorului, chiar și cei care scriu în limbaje interpretative, nu are alte opțiuni pentru repetarea lanțului de comenzi: poate executa ceva din nou în timp ce:

  • contorul conteaza;
  • atâta timp cât condiția este îndeplinită.

JavaScript este un interpret tipic.Particularitatea sa: funcționează în interiorul browserului, își folosește obiectele și permite executarea de algoritmi pe partea clientului, atât atunci când pagina este încărcată în browser, cât și în timpul funcționării acestuia.

JavaScript foreach bucle

O buclă simplă pentru fiecare

În JavaScript, buclele foreach arată ca aplicarea unei funcții la o matrice:

Un exemplu de buclă „pentru fiecare”

Utilizarea unor astfel de bucle este simplă. Formal, nu există un ciclu ca atare. Există un apel secvenţial al funcţiei către elementele matricei.

Ciclu peste tejghea

Buclele For arată mai familiare în JavaScript:

Exemplu pentru (i...)

Aici, contorul este o variabilă, valoareacare se modifică conform formulei şi sfârşitul ciclului este indicat de condiţie. Formula și condiția nu trebuie să includă o variabilă de buclă. Dar controlul asupra sfârșitului ciclului este complet determinat de conținutul lor.

Bucle condiționate

Opțiunea while JavaScript sugerează înîn funcție de momentul în care trebuie verificată starea. Dacă corpul ciclului nu poate fi executat nici măcar o dată, acesta este un lucru, dacă corpul trebuie executat cel puțin o dată, acesta este diferit:

În timp ce bucle

În primul caz, interpretând construcția while,JavaScript verifică mai întâi condiția și, dacă este adevărată, se execută în buclă. În al doilea caz, ciclul va fi executat primul. Dacă, ca urmare a modificării variabilelor specificate în starea de construcţie do while, va fi fals și bucla se va opri din executare.

Combinații masive de algoritmi simpli

Sarcina principală (partea constitutivă) a oricăruialgoritm - pentru a găsi, abia apoi luați o decizie cu privire la ce să faceți în continuare. Cea mai primitivă opțiune de căutare este accesarea unei variabile, rezultatul se obține direct. Dacă există multe variabile sau are multe valori (o matrice), atunci pentru a selecta o valoare, trebuie să găsiți ceva care să determine comportamentul ulterioară al scriptului.

Exemple de bucle JavaScript

O doctrină atât de simplă făcută o buclă cu un contor în JavaScript este un fel deun panaceu pentru toate sarcinile. Calculatoarele moderne sunt rapide. Există suficient timp pentru a executa scripturi în browser, nu este grabă. Este mai ușor ca niciodată să rezolvi ceva de dragul a ceva. Ca urmare, pe JBuclele avaScript for au devenit foarte populare.

Nu pare să fie nimic în neregulă cu asta. Dar în spatele unei astfel de abordări, esența de dragul căreia este scris cutare sau cutare algoritm se pierde ușor. Datele nu sunt niciodată inutile. Tot ceea ce este scris orice program are sens. Bea prea mult din JavaScript pentru bucle, este posibil ca dezvoltatorul să nu vadă entitatea dorită și să nu creeze un algoritm adecvat.

Contor buclă în JavaScript

Funcționalitate, afișare diferită a realității

Aplicand Exemple de bucle JavaScript de același tip de cod poate fi reprezentat prin funcții - algoritmul se va transforma imediat, corpul principal al scriptului va scădea în dimensiune, totul va deveni lizibil și ușor de înțeles.

Aceasta nu este o soluție radical nouă, dar în esență nu depășește alte constructe ale limbajului. În special, JBuclele avaScript pot fi găsite în funcția clasică split ():

var cRezultat = „9,8,7,6,5,4”;
var un rezultat = cRezultat.Despică(",");

Nu există nicio buclă aici, dar cum altfel se execută această funcție dacă nu căutând caracterul "," și folosindu-l pentru a separa un număr de altul.

Făcând abstracție de modul în care este implementat internsplit () funcții, JavaScript poate fi completat cu funcționalitatea proprie care folosește bucle, din punct de vedere al utilizării - mai convenabil. Este esențial ca această abordare să conducă la dezvoltarea funcționalității pentru fiecare sarcină, respectiv, dar generalul va fi în continuare cu această abordare.

Funcții populare bazate pe timp

Aceste funcții sunt allt (), padc (), padl () și padr ().care nu este în JavaScript, dar uneori trebuie să eliminați spații din șir sau să aliniați lungimea șirului la stânga, la dreapta sau ambele părți. Corpul acestor funcții conține bucle JavaScript. Simplu, accesibil și nu va îngheța niciodată algoritmul care îl folosește.

Funcția populară bazată pe do while

Variante de funcții pentru conversia numerelor dinHexazecimal până la al 10-lea sistem numeric și invers, este mai ușor de spus, de la un format de date la altul, sunt efectuate aici prin intermediul buclelor do while. Sintaxa limbajului foarte compactă și eficientă.

exemple de bucle javascript

Cicluri corecte - Afișarea realității

JavaScript nu se potrivește cu alte limbaje de programare și nu diferă într-o varietate de versiuni și, cel mai important, nu caută să schimbe sintaxa, ci să o dezvolte și să o extindă.

Mentalitatea unui programator JS este diferită din gândirea programatorului PHP (în special, și alte limbi în general, ei bine, cu excepția faptului că „Prolog” și adepții săi nu sunt incluși în mainstream), când algoritmul nu se limitează la variabile, matrice, operatori de atribuire, construcții în buclă.

Dacă ne imaginăm că nu există cicluri, iar problema este rezolvatăeste necesar, atunci cea mai simplă opțiune (bandă la ochi) este să presupunem că programul prelucrează date care sunt un punct sau un sistem de puncte în spațiul informațional. Ce este un punct și ce este un sistem de puncte este o chestiune a unui domeniu specific. Pentru un programator, această teză înseamnă: există date simple și există o colecție de date simple. Desigur, data simplă a unui nivel pentru nivelul de dedesubt va fi un sistem, iar pentru nivelul de deasupra va fi un punct.

Cu această abordare, preocuparea principală este să vă manifestați esența prin metodele voastre. Când un punct se află într-un supersistem, atunci funcția sistemului este de a-și manifesta esența ca un set de entități ale punctelor incluse în el.

Această abordare este la fel de veche ca ideea de limbiprogramare, dar încă nu și-a găsit reflectarea adecvată în programare. Mulți programatori gândesc corect, dar rezultatul creativității lor lasă mult de dorit.

Este bine să porți ochi uneori pentru a vedea lumea!