Autor | Zpráva | ||
---|---|---|---|
Ottik Profil * |
#1 · Zasláno: 25. 12. 2018, 16:04:40
Ahoj, když napíš do konzole například toto:
neexistujici_promenna; // zobrazí se: ReferenceError: neexistujici_promenna is not defined ale když napíšu napřáíklad toto var muj_obj = {}; // prázdný objekt muj_obj.shits; // zobrazí se pouze undefined bez chyby |
||
Mlocik97 Profil |
#2 · Zasláno: 25. 12. 2018, 16:23:10
protože tá promenná už nieje prázdna, ale obsahuje prázdny nedefinovaný objekt.
|
||
Radek9 Profil |
Ottik:
Jednoduše řečeno JS prostě rozlišuje mezi přístupem k neexistující proměnné a k neexistující vlastnosti nějakého objektu. Pokud chceš ověřit, že je nějaká proměnná definovaná, tak to jde takto: if (typeof someVariable !== 'undefined') { // Je definována } Pokud je (resp. má být) globální, můžeš (jako v případě tvé druhé ukázky) využít i přístup pomocí globálního objektu (podle kontextu je to většinou global nebo window ):
if (window.someVariable !== undefined) { // Je definována } Tyto přístupy nicméně nerozlišují to, jestli je proměnná opravdu nedefinovaná, nebo jestli je definovaná, ale obsahuje hodnotu undefined (tzn. let someVariable = undefined; ). Pokud chceš skutečně zjistit to, zda vůbec není definovaná, můžeš využít právě toho, že to hází ReferenceError , a pomocí try-catch si odchytit výjimku.
|
||
Časová prodleva: 5 let
|
0