/ / JavaScript-loopar: för, medan, medan

JavaScript-loopar: för, medan, medan

Historien om bildandet av den moderna syntaxen för ett programmeringsspråk är besläktad med kunskapen om processerna för bildandet av universum. Vad och hur det var i början ... Men nu är allt enkelt och tillgängligt.

JavaScript-loopar

Algoritmen i slutändan är alltidsekventiell kedja av kommandon. Parallelism i programmering är en samling sekvenser som på något sätt kombineras. En loopingalgoritm har aldrig varit mer praktisk än en seriell eller parallell kedja av kommandon. Etiketter, övergångar och villkor räckte för alla lösningar. Funktionella språk berövade dessa idéer betydelse, men behovet av upprepning av kodavsnitt kvarstod.

Webbläsare: DOM, dess språk + server

I JavaScript förblir loopar, även om de är funktionellaidéer fick särskild betydelse. Det kan finnas några rester från Lisp och Prolog, men troligen har området där JavaScript bor lett till det, men det är tveksamt att detta är den sista lösningen.

Medan JavaScript

JavaScript körs i webbläsaren somhämtar sidan, analyserar den i DOM och kör det första skriptet. Alla andra sidor, inklusive de som laddas på den här, är arbetet med en utvecklare som manipulerar språket genom vilket koden på servern kan anropas och resultatet erhålls med AJAX-mekanismen.

Webbläsaren kör JavaScript-kod som kananvända webbläsarobjekt, inklusive det som tillhandahåller informationsöverföring till servern och tar emot ett svar, vilket kan vara både HTML-markering och stilar och den faktiska koden. Svaret kan representeras av matriser och objekt. Betydelsen av att använda loopar i JavaScript går förlorad, det finns gott om möjligheter att göra utan dem, och det är inte den bästa lösningen att riskera att hänga webbläsaren med en oändlig sekvens av kommandon.

Slingor finns faktiskt i de flesta JavaScript-syntaktiska konstruktioner; utvecklaren kan lägga till sina egna funktioner i standardkonstruktionerna.

Positionering av JavaScript i kodutrymme

En modern programmerare tror inte ens detslingan han använder (för, medan, gör medan, ...) är i slutändan en serie processorcykler (cykler), en enkel sekvens av binära operationer avbruten av motkontroller, det vill säga villkor.

göra medan

Som sådan finns det ingen slinga på maskinspråknivå:det finns en kombination av vanliga kommandon, villkorliga operationer och hopp. En nivå upp, oavsett vilket verktyg som används för att utveckla webbläsaren och JavaScript-tolk, kommer looparna att vara entydiga. Dessutom kommer "kodbitar" att presenteras vid olika tidpunkter och av olika generationer av programmerare. En våning ovan ligger JavaScript-byggnaden. Syntaksen som erbjuder moderna JavaScript-loopar.

JS är ett fantastiskt språk:praktiskt, modernt och fullt fungerande. Syntaxen för detta verktyg innehåller alla konstruktioner som har klarat tidens test och har blivit den orubbliga grunden för vilken algoritm som helst. Men är slingor verkligen nödvändiga? Programmeringsfrågan ställde sig ofta grundläggande frågor, men bara i några få fall hittade den en lösning.

Objektiva skäl

Cykeln kan endast ha två alternativ:efter villkor eller räknare, men i huvudsak (på den lägsta nivån) är varje slinga endast villkorad. På vissa språk finns det en cykel "för varje". I JavaScript representeras foreach-loopar av prop i objektkonstruktion, men du kan använda varianten array.forEach (...).

JavaScript för loopar

I alla fall finns det två alternativ:maskinkoden som i slutändan kör alla programmeringsalgoritmer, även de som skriver på tolkningsspråk, har inga andra alternativ för att upprepa kommandokedjan: den kan utföra något igen medan:

  • räknaren räknar;
  • så länge villkoret är uppfyllt.

JavaScript är en typisk tolk.Dess särdrag: den fungerar inuti webbläsaren, använder sina objekt och gör det möjligt att köra algoritmer på klientsidan, både när sidan laddas in i webbläsaren och under dess drift.

JavaScript foreach loopar

En enkel slinga för varje

I JavaScript ser foreach-loopar ut som att tillämpa en funktion i en matris:

Ett exempel på en slinga "för varje"

Användningen av sådana öglor är enkel. Formellt finns det ingen cykel som sådan. Det finns ett sekventiellt anrop av funktionen till elementen i matrisen.

Motcykel

För loopar ser mer bekant ut i JavaScript:

Exempel på (i ...)

Här är räknaren en variabel, värdetsom ändras enligt formeln och slutet av cykeln indikeras av tillståndet. Formeln och villkoret behöver inte inkludera en loopvariabel. Men kontrollen över slutet av cykeln bestäms helt av deras innehåll.

Villkorliga öglor

Medan JavaScript-alternativet föreslår iberoende på när du vill kontrollera tillståndet. Om cykelns kropp kanske inte exekveras ens en gång är detta en sak, om kroppen måste utföras minst en gång är det annorlunda:

Medan öglor

I det första fallet, tolkning av medan konstruktion,JavaScript kontrollerar först om villkoret, och om det är sant, slingrar det. I det andra fallet körs cykeln först. Om, som ett resultat av att ändra de variabler som anges i konstruktionsförhållandet gör medan det blir falskt och slingan slutar köras.

Massiva kombinationer av enkla algoritmer

Huvuduppgiften (beståndsdel) av allaalgoritm - för att hitta, först då ta ett beslut om vad du ska göra nästa. Det mest primitiva sökalternativet är att få tillgång till en variabel, resultatet erhålls direkt. Om det finns många variabler, eller om det har många värden (en matris), måste du hitta något som kommer att avgöra skriptets ytterligare beteende för att välja ett värde.

Exempel på JavaScript-loopar

En sådan enkel doktrin gjord en slinga med en räknare i JavaScript är ett slagsett universalmedel för alla uppgifter. Moderna datorer är snabba. Det finns gott om tid att utföra skript i webbläsaren, det finns ingenstans att rusa. Det är lättare än någonsin att reda ut något för något. Som ett resultat, på JavaScript för loopar har blivit mycket populärt.

Det verkar inte vara något fel med det. Men bakom ett sådant tillvägagångssätt försvinner lätt kärnan för vilken den här eller den andra algoritmen är skriven. Data är aldrig meningslös. Allt som något program är skrivet för är vettigt. Dricker för mycket på JavaScript för loopar, kanske utvecklaren inte ser önskad enhet och inte skapar en adekvat algoritm.

Counter loop i JavaScript

Funktionalitet, annorlunda visning av verkligheten

Genom att ansöka Exempel på JavaScript-loopar av samma typ av kod kan representeras av funktioner - algoritmen kommer omedelbart att transformeras, huvudkroppen i skriptet kommer att minska i storlek, allt blir läsbart och förståeligt.

Detta är inte en radikalt ny lösning, men i grunden går den inte utöver räckvidden för andra språkkonstruktioner. I synnerhet JavaScript-slingor finns i den klassiska split () -funktionen:

var cResultat = "9,8,7,6,5,4";
var ett resultat = cResultat.dela(",");

Det finns ingen slinga här, men hur fungerar den här funktionen annars om inte genom att leta upp tecknet "," och använda det för att separera ett nummer från ett annat.

Abstrakt från hur det implementeras interntsplit () -funktioner, JavaScript kan kompletteras med sin egen funktionalitet som använder slingor, ur användningssynpunkt - bekvämare. Det är viktigt att detta tillvägagångssätt leder till utveckling av funktionalitet för respektive uppgift, men generalen kommer fortfarande att vara med denna metod.

Populära medan-baserade funktioner

Dessa funktioner allt (), padc (), padl () och padr () ärsom inte finns i JavaScript, men ibland måste du ta bort mellanslag från strängen eller justera strängens längd till vänster, höger eller båda sidor. Kroppen för dessa funktioner innehåller JavaScript-loopar. Enkelt, prisvärt och kommer aldrig att frysa algoritmen med den.

Populär basfunktion

Varianter av funktioner för att konvertera nummer frånHexadecimal till det 10: e nummersystemet och vice versa, det är lättare att säga, från ett dataformat till ett annat, utförs här med hjälp av do while-loopar. Mycket kompakt och effektiv språksyntax.

exempel på javascript-loopar

Correct Cycles - Visa verklighet

JavaScript är ingen matchning för andra programmeringsspråk och skiljer sig inte åt i olika versioner, och viktigast av allt, den försöker inte ändra syntaxen utan att utveckla och utöka den.

Tänkandet hos en JS-programmerare är annorlunda från tänkandet från en PHP-programmerare (i synnerhet och andra språk totalt sett, förutom att "Prolog" och dess anhängare inte ingår i mainstream), när algoritmen inte är begränsad till variabler, matriser, tilldelningsoperatorer, loopkonstruktioner.

Om vi ​​föreställer oss att det inte finns några cykler, och problemet är löstdet är nödvändigt, då är det enklaste alternativet (ögonbindel) att anta att programmet behandlar data som är en punkt eller ett system av punkter i informationsutrymmet. Vad som är en punkt och vad som är ett poängsystem är en fråga om ett specifikt ämnesområde. För en programmerare betyder denna avhandling: det finns enkla data och det finns en samling enkla data. Naturligtvis kommer det enkla datumet för en nivå för nivån nedan att vara ett system, och för nivån ovan kommer det att vara en punkt.

Med detta tillvägagångssätt är poängens angelägenhet att manifestera din essens genom dina metoder. När en punkt befinner sig i ett supersystem är systemets funktion att manifestera dess väsen som en uppsättning enheter av de punkter som ingår i den.

Detta tillvägagångssätt är lika gammalt som idén om språkprogrammering, men har fortfarande inte hittat sin tillräckliga reflektion i programmeringen. Många programmerare tänker rätt, men resultatet av deras kreativitet lämnar mycket att önska.

Det är bra att ha ögonbindel ibland för att se världen!