For, While en Do While LOOP in JavaScript met voorbeeld

⚡ Slimme samenvatting

For-, While- en Do While-lussen in JavaScript herhaalt een blok instructies zonder code te dupliceren. Dit artikel legt elke syntax uit, toont werkende voorbeelden met de verwachte uitvoer, voegt de for-in- en for-of-vormen toe en behandelt break, continue en het voorkomen van oneindige lussen.

  • 🔁 Kerndoel: Een lus voert dezelfde instructies herhaaldelijk uit gedurende een vast aantal keren of zolang een bepaalde voorwaarde waar blijft.
  • 🔢 voor lus: Drie expressies in de header behandelen de initialisatie, de exit-test en de update, die geschikt is voor een bekend aantal iteraties.
  • ❓ while-lus: De voorwaarde wordt vóór elke iteratie gecontroleerd, waardoor de code mogelijk nooit wordt uitgevoerd als de voorwaarde in eerste instantie onwaar is.
  • 1️⃣ doe… terwijl lus: Het lichaam voert de test altijd minstens één keer uit, omdat de conditie na de eerste doorgang wordt geëvalueerd.
  • 🔑 voor…in Loop: Itereert over de sleutels van een object en retourneert eigenschapsnamen in plaats van waarden.
  • ???? voor…van Loop: Itereert over de waarden van arrays, strings, maps en andere iterable objecten.
  • ⛔ Datatransportbesturing: De `break`-instructie verlaat een lus onmiddellijk, terwijl `continue` doorgaat naar de volgende iteratie.

For While en Do While Loop in JavaScript

Wat is een lus in JavaScript?

Loops zijn handig wanneer u dezelfde coderegels herhaaldelijk moet uitvoeren, gedurende een bepaald aantal keren of zolang een specifieke voorwaarde waar is. Stel dat u 100 keer een 'Hallo'-bericht op uw webpagina wilt typen. Natuurlijk moet je dezelfde regel 100 keer kopiëren en plakken. Als u lussen gebruikt, kunt u deze taak in slechts 3 of 4 regels voltooien.

Elke lus is opgebouwd uit dezelfde drie onderdelen, ongeacht de syntaxis: een beginwaarde, een voorwaarde die bepaalt of een volgende iteratie wordt uitgevoerd, en een update die de lus naar de uitgang brengt. Het onderstaande diagram illustreert deze herhalende cyclus.

Gebruik Loops-in Javascript

Verschillende soorten lussen in JavaScript

Er zijn hoofdzakelijk vier soorten lussen in JavaScript.

  1. for loop
  2. for/in-lus
  3. herhalingslus
  4. do… while loop

MODERN JavaHet script voegt de for…of-lus toe om direct door waarden te itereren, waardoor er in de praktijk vijf vormen beschikbaar zijn. De onderstaande tabel laat zien welke vorm in een bepaalde situatie het meest geschikt is.

Ringleiding Conditie gecontroleerd Minimum aantal uitvoeringen Best gebruikt voor:
besteld, Voor elke pas 0 Een bekend aantal herhalingen
en Voor elke pas 0 Een onbekend aantal, bepaald door een voorwaarde.
doen…terwijl Na elke pas 1 Menu's en prompts die eenmalig moeten worden uitgevoerd.
voor…in Voor elke pas 0 Het aflezen van de sleutels van een object
voor…van Voor elke pas 0 De waarden van een array of tekenreeks uitlezen.

for loop

Syntax:

for(statement1; statement2; statment3)
{
lines of code to be executed
}
  1. De instructie1 wordt eerst uitgevoerd, zelfs voordat de loo wordt uitgevoerd.ping code. Deze instructie wordt normaal gesproken gebruikt om waarden toe te wijzen aan variabelen die binnen de lus worden gebruikt.
  2. De instructie2 is de voorwaarde om de lus uit te voeren.
  3. De instructie 3 wordt elke keer na de loo uitgevoerd.ping De code wordt uitgevoerd.

Probeer dit zelf:

<html>
<head>
	<script type="text/javascript">
		var students = new Array("John", "Ann", "Aaron", "Edwin", "Elizabeth");
		document.write("<b>Using for loops </b><br />");
		for (i=0;i<students.length;i++)
		{
		document.write(students[i] + "<br />");
		}
	</script>
</head>
<body>
</body>
</html>

Output:

Using for loops
John
Ann
Aaron
Edwin
Elizabeth

De teller begint bij 0 omdat de eerste index van een reeks is nul, en de voorwaarde gebruikt students.length zodat de lus zich automatisch aanpast wanneer namen worden toegevoegd of verwijderd.

herhalingslus

Syntax:

while(condition)
{
lines of code to be executed
}

De "while loop" wordt uitgevoerd zolang de opgegeven voorwaarde waar is. Binnen de while loop moet u de statement opnemen die de loop op een bepaald moment zal beëindigen. Anders zal uw loop nooit eindigen en kan uw browser crashen.

Probeer dit zelf:

<html>
<head>
	<script type="text/javascript">
		document.write("<b>Using while loops </b><br />");
		var i = 0, j = 1, k;
		document.write("Fibonacci series less than 40<br />");
		while(i<40)
		{
			document.write(i + "<br />");
			k = i+j;
			i = j;
			j = k;
		}
	</script>
</head>
<body>
</body>
</html>

Output:

Using while loops
Fibonacci series less than 40
0
1
1
2
3
5
8
13
21
34

⚠️ Waarschuwing: Een while-lus waarvan de voorwaarde nooit onwaar wordt, bevriest het browsertabblad. Controleer altijd of een variabele in de body de voorwaarde naar onwaar verschuift en gebruik een veiligheidsteller wanneer het verlaten van de lus afhankelijk is van externe gegevens.

do… while loop

Syntax:

do
{
block of code to be executed
} while (condition)

De do…while-lus lijkt erg op de while-lus. Het enige verschil is dat in de do…while-lus het codeblok één keer wordt uitgevoerd, zelfs voordat de voorwaarde wordt gecontroleerd.

Probeer dit zelf:

<html>
<head>
	<script type="text/javascript">
		document.write("<b>Using do...while loops </b><br />");
		var i = 2;
		document.write("Even numbers less than 20<br />");
		do
		{
			document.write(i + "<br />");
			i = i + 2;
		}while(i<20)
	</script>
</head>
<body>
</body>
</html>

Output:

Using do...while loops
Even numbers less than 20
2
4
6
8
10
12
14
16
18

Het verschil wordt zichtbaar wanneer de voorwaarde vanaf het begin onwaar is. Een while-lus print niets, terwijl een do…while-lus nog steeds één regel print voordat hij stopt.ping.

voor…in lus

De for…in-lus doorloopt de opsombare eigenschapsnamen van een object. Bij elke iteratie wordt de volgende sleutel aan de lusvariabele toegewezen en de waarde wordt ingelezen met behulp van de haakjesnotatie.

const student = {
    name: "Ann",
    age: 21,
    course: "JavaScript"
};

for (const key in student) {
    console.log(key + " : " + student[key]);
}

Output:

name : Ann
age : 21
course : JavaScript

💡Tip: Vermijd het gebruik van `for…in` op arrays. Het retourneert indexwaarden als strings en bezoekt ook overgeërfde eigenschappen, wat tot verrassende resultaten kan leiden. Gebruik in plaats daarvan `for…of` of een klassieke `for`-lus voor arrays.

for…of-lus en forEach

De `for…of`-lus leest de waarden van elk iterable object, inclusief arrays, strings, maps en sets. De `forEach`-methode bereikt hetzelfde resultaat met een callbackfunctie en geeft toegang tot de index.

const students = ["John", "Ann", "Aaron"];

// for...of reads each value directly
for (const name of students) {
    console.log(name);
}

// forEach supplies the value and the index
students.forEach(function (name, index) {
    console.log(index + " - " + name);
});

// strings are iterable too
for (const letter of "Ann") {
    console.log(letter);
}

Output:

John
Ann
Aaron
0 - John
1 - Ann
2 - Aaron
A
n
n

Een belangrijk praktisch verschil is dat je binnen een `for…of`-lus kunt `break` en `continue` kunt gebruiken, maar niet binnen een `forEach`-lus, omdat elke callback een aparte functie is.

onderbreking en vervolgverklaringen

Twee sleutelwoorden veranderen de normale gang van zaken in een lus. De `break`-instructie verlaat de lus volledig, en de `continue`-instructie breekt de huidige iteratie af en springt naar de volgende.

const numbers = [4, 7, 10, 13, 16, 19];

// continue: skip odd numbers
for (const n of numbers) {
    if (n % 2 !== 0) {
        continue;
    }
    console.log("even: " + n);
}

// break: stop at the first value above 12
for (const n of numbers) {
    if (n > 12) {
        console.log("first value above 12: " + n);
        break;
    }
}

Output:

even: 4
even: 10
even: 16
first value above 12: 13

Lussen komen in vrijwel elk script dat je schrijft voor. Ga verder met de praktisch JavaScriptcodevoorbeelden, opnieuw bezoeken JavaScript array-methoden voor de iteratiehulpmiddelen die bovenop deze lussen zijn gebouwd, en lees intern en extern JavaScript om te beslissen waar het voltooide script moet worden opgeslagen.

Veelgestelde vragen

Een while-lus test de voorwaarde vóór de eerste doorgang, waardoor de code mogelijk nooit wordt uitgevoerd. Een do…while-lus test erna, wat garandeert dat het codeblok minstens één keer wordt uitgevoerd.

Ja. Een binnenste lus voltooit elke iteratie voor elke afzonderlijke iteratie van de buitenste lus, en zo worden roosters en tabellen opgebouwd. Gebruik verschillende tellernamen om te voorkomen dat de index van de buitenste lus wordt overschreven.

Sluit het betreffende tabblad en corrigeer vervolgens de fout of de update-instructie voordat u het tabblad opnieuw laadt. Door een teller toe te voegen die stopt na een maximaal aantal keren doorlopen, voorkomt u herhaling tijdens de ontwikkeling.

De klassieke for-lus is marginaal sneller bij grote arrays omdat de overhead van callbacks wordt vermeden. Het verschil is verwaarloosbaar bij minder dan een paar duizend elementen, dus geef in dat geval de voorkeur aan leesbaarheid.

Ze kiezen standaard voor 'voor...van' of 'kaart'. RevBekijk de suggestie wanneer de taak een index, een vroege exit of een gegarandeerde eerste poging vereist, aangezien die gevallen een andere vorm vereisen.

Een `for await…of`-lus leest delen van een gestreamde respons en voegt elk token toe aan de pagina. Het is de asynchrone tegenhanger van `for…of` en vereist een `async`-functie.

Vat dit bericht samen met: