Každý asi ví, že Javascriptový kód jde debugovat vložením slova debugger do kódu nebo vložením breakpointu – což je omezeno tím, že jde vložit jen do JS souboru. Věděli jste ale, že je možné zastavit vykonávání javascript v okamžiku, kdy je zavolána nativní funkce prohlížeče nezávisle na to, která část javascriptu ji vyvolala?
Pokračování textu Debugování nativních akcí prohlížečeArchiv štítku: Debugger
Je undefined skutečně „undefined“?
V moderních prohlížečích, jako je Chrome, Firefox či Edge skutečně není hodnota proměnné undefined definována.
undefined = 1; //vrátí 1 (ale nezmění!) typeof undefined; //vrátí "undefined"
To je proto, že undefined
již není globální proměnná (tedy window.undefined
), ale jde o speciální konstrukci (podobně jako třeba return;
nebo continue;
). Dokonce i hodnota window.undefined
je vždy nedefinována, i když do ní něco přiřadíte.
Jak správně debugovat JavaScript?
Debugovat JavaScript většinou není problém – spustíte Nástroje pro vývojáře, Inspektor, Firebug, F12, apod. a nastavíte break-point (nebo prostě do kódu napíšete „debugger„).
Někdy ale narazíte na speciální situace, kdy není možné debugger použít (např. na mobilu, chytré televizi, apod.) nebo se debugger nechová přesně tak, jak byste očekávali.
Poznámka: následující ukázky kódu se mohou zdát nelogické, špatně navržené či dokonce chybné – ale o to přeci jde. Kdyby byl každý kód dokonale navržený a bezchybný, nebylo by ho potřeba debugovat!
Metody debugování
- Nejčastějším způsobem debugování javascriptu je již zmíněné vytvoření break-pointu nebo příkazu debugger, které je nejvhodnější, pokud potřebujete kód krokovat nebo se podívat na obsah nějakých proměnných v daném okamžiku.
- Další možností je zápis do konzole, které se hodí, pokud přímo nepotřebujete kód zastavit (nebo je to přímo nežádoucí), ale potřebujete se dozvědět o nějaké události nebo o obsahu nějaké proměnné. Moderní RIA (Rich Internet Applications) mohou do logu konzole zapisovat stejně často jako desktopové programy nebo mobilní aplikace.
- Třetí často používanou metodou je zobrazení alertu, které se dost podobá „brute force“ a používá se v okamžiku, kdy všechny ostatní metody selhávají a vy se potřebujete dozvědět, že došlo k nějaké události (nebo naopak nedošlo v důsledku v chyby v kódu).