Řešení úlohy

Co je zde splněno:

  • Funkce testScope() deklaruje proměnnou lokalni pomocí let.

  • Hodnota je správně vypsána uvnitř funkce.

  • Při pokusu o výpis mimo funkci vzniká chyba ReferenceError.

  • Navíc je ukázáno chování proměnné uvnitř bloku if.

Poznámky

  • let a const jsou vázané na blok, což zvyšuje bezpečnost a předvídatelnost kódu.

  • var má pouze funkční scope, takže se někdy chová neočekávaně (proměnná je přístupná i mimo blok if).

  • Typická chyba studentů: myslí si, že proměnná z if existuje i mimo něj – u let a const to neplatí.