Přiřadit, nebo porovnat?

Rovnítko má v JavaScriptu dvě různé úlohy podle toho, kolik jich napíšete:

  • = přiřazuje: uloží hodnotu zprava do proměnné vlevo. skore = 10 znamená „skore je teď 10“.
  • === porovnává: ptá se, jestli se dvě hodnoty rovnají, a nic nemění. skore === 10 znamená „je skore 10?“

Napsat v podmínce = místo === je jedna z nejčastějších chyb a JavaScript vás na ni neupozorní:

let vek = 15;
if (vek = 18) {
    console.log("Všechno nejlepší k osmnáctinám!");
}
console.log("Věk:", vek);

Tento kód vypíše:

Všechno nejlepší k osmnáctinám!
Věk: 18

Podmínka vek = 18 se na nic neptá. Změní vek na 18 a příkaz if pak tuto osmnáctku použije jako podmínku. Číslo různé od 0 se počítá jako pravda, a tak se blok provede. Jsou to dvě chyby najednou: špatná zpráva a proměnná, která přišla o svou hodnotu.

Kdyby vek byla konstanta (const vek = 15;), dostali byste aspoň chybovou hlášku, protože konstantu změnit nejde: TypeError: Assignment to constant variable. To je další důvod, proč pro hodnoty, které se nemění, používat const.

JavaScript má také == se dvěma rovnítky. Před porovnáním převede obě hodnoty na stejný typ, takže "5" == 5 je pravda, přestože jedno je text a druhé číslo. Se třemi rovnítky je "5" === 5 nepravda: text a číslo se nikdy nerovnají. Takové převody vedou k nečekaným výsledkům, a proto vždy používejte === a !==, nikdy == a !=.

Pokyny

Spusťte program. Student má 40 bodů, a přesto se vypíše Plný počet bodů! a Body: 100. Opravte podmínku tak, aby porovnávala body se 100 pomocí ===. Program pak vypíše jen Body: 40.

Přidejte větev else, která vypíše Trénujte dál.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

4/11