JavaScript til Loop


Indholdsfortegnelse

    Vis indholdsfortegnelse


Loops kan udføre en kodeblok et antal gange.


JavaScript-løkker

Loops er praktiske, hvis du vil køre den samme kode igen og igen, hver tid med en anden værdi.

Ofte er dette tilfældet, når du arbejder med arrays:

I stedet for at skrive:

 text += cars[0] + "<br>"; 
text += cars[1] + "<br>"; 
 text += cars[2] + "<br>"; 
text += cars[3] + "<br>"; 
 text += cars[4] + "<br>"; 
text += cars[5] + "<br>";

Du kan skrive:

for (let i = 0; i < cars.length; i++) { 
  text += cars[i] + "<br>";
 }

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript For Loop</h2>

<p id="demo"></p>

<script>
const cars = ["BMW", "Volvo", "Saab", "Ford", "Fiat", "Audi"];

let text = "";
for (let i = 0; i < cars.length; i++) {
  text += cars[i] + "<br>";
}

document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

Forskellige Slags Loops

JavaScript understøtter forskellige slags loops:

  • for - går gennem en kodeblok et antal gange

  • for/in - går gennem et objekts egenskaber

  • for/of - sløjfer gennem værdierne af en iterable objekt

  • mens - går gennem en kodeblok, mens en specificeret betingelse er sand

  • do/while - går også gennem en kodeblok, mens en specificeret betingelse er sand


for-løkken

for-sætningen opretter en løkke med 3 valgfrie udtryk:

for (expression 1; expression 2; expression 3) {
      // code block to be executed
 }

Udtryk 1 udføres (en gang) før afviklingen af kodeblokken.

Udtryk 2 definerer betingelsen for at udføre kodeblokken.

Udtryk 3 udføres (hver gang), efter at kodeblokken er blevet eksekveret.

Eksempel

for (let i = 0; i < 5; i++) {
   text += "The number is " + i + "<br>";
}
 

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript For Loop</h2>

<p id="demo"></p>

<script>
let text = "";

for (let i = 0; i < 5; i++) {
  text += "The number is " + i + "<br>";
}

document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

Fra eksemplet ovenfor kan du læse:

Udtryk 1 sætter en variabel før løkken starter (lad i=0).

Udtryk 2 definerer betingelsen for, at løkken kan køre (i skal være mindre end 5).

Udtryk 3 øger en værdi (i++) hver gang kodeblokken i løkken har blevet henrettet.



Udtryk 1

Normalt vil du bruge udtryk 1 til at initialisere den variabel, der bruges i løkken (lad i=0).

Dette er ikke altid tilfældet. JavaScript er ligeglad. Udtryk 1 er valgfri.

Du kan starte mange værdier i udtryk 1 (adskilt med komma):

Eksempel

for (let i = 0, len = cars.length, text = ""; i < len; i++) { 
  text += cars[i] + "<br>";
 }

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript For Loop</h2>

<p id="demo"></p>

<script>
const cars = ["BMW", "Volvo", "Saab", "Ford"];
let i, len, text;
for (i = 0, len = cars.length, text = ""; i < len; i++) {
  text += cars[i] + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

Og du kan udelade udtryk 1 (som når dine værdier er indstillet før løkken starter):

Eksempel

let i = 2;
let len = cars.length;
let text = "";
for (; i < len; i++) { 
    text += cars[i] + "<br>";
 }

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript For Loop</h2>

<p id="demo"></p>

<script>
const cars = ["BMW", "Volvo", "Saab", "Ford"];
let i = 2;
let len = cars.length;
let text = "";

for (; i < len; i++) {
  text += cars[i] + "<br>";
}

document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

Udtryk 2

Ofte bruges udtryk 2 til at evaluere tilstanden af den oprindelige variabel.

Dette er ikke altid tilfældet. JavaScript er ligeglad. Udtryk 2 er også valgfrit.

Hvis udtryk 2 returnerer sandt, starter løkken forfra. Hvis det returnerer falsk, vil sløjfen slutter.

Hvis du udelader udtryk 2, skal du angive en pause inde i sløjfe. Ellers vil løkken aldrig ende. Dette vil nedbryde din browser. Læs om pauser i et senere kapitel i denne øvelse.


Udtryk 3

Ofte øger udtryk 3 værdien af den indledende variabel.

Dette er ikke altid tilfældet. JavaScript er ligeglad. Udtryk 3 er valgfri.

Udtryk 3 kan gøre alt som negativ stigning (i--), positiv stigning (i=i + 15) eller noget andet.

Udtryk 3 kan også udelades (som når du øger dine værdier inde i løkken):

Eksempel

let i = 0;
let len = cars.length;
let text = "";
for (; i < len; ) { 
  text += cars[i] + "<br>";
   
 i++;
}

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript For Loop</h2>

<p id="demo"></p>

<script>
const cars = ["BMW", "Volvo", "Saab", "Ford"];

let i = 0;
let len = cars.length;
let text = "";

for (; i < len; ) {
  text += cars[i] + "<br>";
  i++;
}
document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

Loop Scope

Brug af var i en sløjfe:

Eksempel

var i = 5;

for (var i = 0; i < 10; i++) {
  // some code
}

// Here i is 10

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript let</h2>

<p id="demo"></p>

<script>
var i = 5;
for (var i = 0; i < 10; i++) {
  // some statements
}
document.getElementById("demo").innerHTML = i;
</script>

</body>
</html>

Brug let i en sløjfe:

Eksempel

let i = 5;

for (let i = 0; i < 10; i++) {
    // some code
}

// Here i is 5

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript let</h2>

<p id="demo"></p>

<script>
let i = 5;
for (let i = 0; i < 10; i++) {
  // some statements
}
document.getElementById("demo").innerHTML = i;
</script>

</body>
</html>

I det første eksempel, ved hjælp af var, er variablen erklæret i løkken generklærer variablen uden for løkken.

I det andet eksempel, ved hjælp af let, er variablen erklæret i løkken generklærer ikke variablen uden for løkken.

Når let bruges til at erklære i-variablen i en løkke, variabel vil kun være synlig i løkken.


For/Af og For/In løkker

for/in-løkken og for/of-løkken er forklaret i næste kapitel.


mens sløjfer

while-løkken og do/while er forklaret i de næste kapitler.