JavaScript pro Loop


Obsah

    Zobrazit obsah


Smyčky mohou provést blok kódu několikrát.


JavaScript smyčky

Smyčky jsou užitečné, pokud chcete spouštět stejný kód znovu a znovu, každý čas s jinou hodnotou.

Často se tak děje při práci s poli:

Místo psaní:

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

Můžeš psát:

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

Zkuste to sami →

<!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>

Různé druhy smyček

JavaScript podporuje různé druhy smyček:

  • for - několikrát projde blok kódu

  • pro/v - prochází vlastnosti objektu

  • for/of - prochází hodnoty an iterovatelný objekt

  • zatímco - prochází blok kódu, když je zadaná podmínka pravdivá

  • do/while - také prochází blok kódu, když je zadaná podmínka pravdivá


Smyčka for

Příkaz for vytváří smyčku se 3 volitelnými výrazy:

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

Výraz 1 se provede (jednou) před provedením bloku kódu.

Výraz 2 definuje podmínku pro provedení bloku kódu.

Výraz 3 se provede (pokaždé) po provedení bloku kódu.

Příklad

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

Zkuste to sami →

<!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>

Z výše uvedeného příkladu můžete vyčíst:

Výraz 1 nastavuje proměnnou před začátkem cyklu (ať i=0).

Výraz 2 definuje podmínku pro běh smyčky (i musí být menší než 5).

Výraz 3 zvyšuje hodnotu (i++) pokaždé, když má blok kódu ve smyčce byl popraven.



Výraz 1

Normálně použijete výraz 1 k inicializaci proměnné použité ve smyčce (ať i=0).

Není tomu tak vždy. JavaScriptu je to jedno. Výraz 1 je volitelný.

Ve výrazu 1 můžete iniciovat mnoho hodnot (oddělených čárkou):

Příklad

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

Zkuste to sami →

<!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>

A můžete vynechat výraz 1 (jako když jsou vaše hodnoty nastaveny před začátkem smyčky):

Příklad

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

Zkuste to sami →

<!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>

Výraz 2

Výraz 2 se často používá k vyhodnocení podmínky počáteční proměnné.

Není tomu tak vždy. JavaScriptu je to jedno. Výraz 2 je také volitelný.

Pokud výraz 2 vrátí hodnotu true, cyklus začne znovu. Pokud vrátí hodnotu false, smyčka skončí.

Pokud vynecháte výraz 2, musíte zadat zalomení uvnitř smyčka. Jinak smyčka nikdy neskončí. To způsobí zhroucení vašeho prohlížeče. Přečtěte si o přestávkách v další kapitole tohoto návodu.


Výraz 3

Výraz 3 často zvyšuje hodnotu počáteční proměnné.

Není tomu tak vždy. JavaScriptu je to jedno. Výraz 3 je volitelný.

Výraz 3 může dělat cokoliv jako záporný přírůstek (i--), kladný přírůstek (i=i + 15), nebo cokoliv jiného.

Výraz 3 lze také vynechat (jako když zvyšujete hodnoty uvnitř smyčky):

Příklad

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

Zkuste to sami →

<!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>

Rozsah smyčky

Použití var ve smyčce:

Příklad

var i = 5;

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

// Here i is 10

Zkuste to sami →

<!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>

Použití let ve smyčce:

Příklad

let i = 5;

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

// Here i is 5

Zkuste to sami →

<!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>

V prvním příkladu pomocí var, proměnné deklarované v smyčka znovu deklaruje proměnnou mimo smyčku.

Ve druhém příkladu pomocí let je proměnná deklarovaná v smyčka znovu nedeklaruje proměnnou mimo smyčku.

Když se let použije k deklaraci proměnné i ve smyčce, proměnná bude viditelná pouze v rámci smyčky.


Smyčky For/Of a For/In

Cyklus for/in a cyklus for/of jsou vysvětleny v další kapitole.


při smyčky

Smyčka při a do/při jsou vysvětleny v dalších kapitolách.