You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/01-debugging-chrome/article.md
+19-21Lines changed: 19 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,7 +65,7 @@ V pravém panelu vždy najdeme seznam zarážek. To je užitečné, když máme
65
65
```smart header="Podmíněné zarážky"
66
66
*Kliknutím pravým tlačítkem* na číslo řádku můžeme vytvořit *podmíněnou* zarážku. Ta se aktivuje, jen když je zadaný výraz, který byste měli uvést při jejím vytvoření, pravdivý.
67
67
68
-
To se hodí, když potřebujeme pozastavit skript jen při určité hodnotě proměnné nebo při určitých parametrech funkce.
68
+
To se hodí, když potřebujeme pozastavit skript jen při určité hodnotě proměnné nebo při určitých argumentech pro funkci.
69
69
```
70
70
71
71
## Příkaz „debugger“
@@ -94,7 +94,7 @@ Když je zarážka nastavena, běh se zastaví na 4. řádku:
94
94
95
95

96
96
97
-
Prosíme otevřete si informační dropdowny vpravo (označené šipkami), které vám umožní prozkoumávat aktuální stav kódu:
97
+
Rozevřete si rozbalovací menu, které se nachází vpravo (označené šipkami). Umožní vám prozkoumávat aktuální stav kódu:
98
98
99
99
1.**`Watch` (`Sledované výrazy`) -- zobrazuje aktuální hodnoty libovolných výrazů.**
V aktuálním okamžiku je ladicí nástroj uvnitř volání `ahoj()`, kterou zavolal skript v `index.html` (není zde žádná funkce, takže se nazývá „anonymní“).
106
106
107
107
Když kliknete na prvek zásobníku (např. „anonymní“), ladicí nástroj přeskočí na odpovídající kód a vy můžete prozkoumávat všechny jeho proměnné.
108
-
109
108
3.**`Scope` (`Rozsah`) -- aktuální proměnné.**
110
109
111
110
`Local` (`Místní`) zobrazuje lokální funkční proměnné. Vidíte také jejich hodnoty zvýrazněné přímo nad zdrojovým kódem.
@@ -121,35 +120,34 @@ Nyní nastal čas *krokovat* skript.
121
120
K tomu slouží tlačítka na vrchu pravého panelu. Podívejme se na ně.
<spanclass="devtools"style="background-position:-146px-168px"></span> -- „Resume“ („Obnovit běh skriptu“): pokračuje v běhu, klávesa `key:F8`.
124
-
125
123
: Pokračuje v běhu skriptu. Nejsou-li už žádné další zarážky, skript se bude prostě vykonávat dál a ladicí nástroj nad ním ztratí kontrolu.
126
124
127
125
Toto uvidíme poté, co na něj klikneme:
128
-
126
+
129
127

130
128
131
129
Běh skriptu se obnovil, dosáhl další zarážky uvnitř `řekni()` a zastavil se tam. Podívejte se na zásobník volání („Call Stack“) vpravo. Zvětšil se o jedno volání. Nyní jsme uvnitř `řekni()`.
132
130
133
-
<spanclass="devtools"style="background-position:-200px-190px"></span> -- „Step“ („Krokovat“): spustí další příkaz, klávesa `key:F9`.
131
+
<spanclass="devtools"style="background-position:-200px-190px"></span> -- „\“ („Krokovat“): spustí další příkaz, klávesa `key:F9`.
134
132
: Spustí další příkaz. Když na něj nyní klikneme, zobrazí se `alert`.
135
133
136
134
Dalším a dalším klikáním můžeme krokovat všechny příkazy skriptu jeden po druhém.
137
135
138
-
<spanclass="devtools"style="background-position:-62px-192px"></span> -- „Step over“ („Překročit další volání funkce“): spustí další příkaz, ale *nevstoupí do funkce*, klávesa `key:F10`.
136
+
<spanclass="devtools"style="background-position:-62px-192px"></span> -- „Step over“ („Překročit“): spustí další příkaz, ale *nevstoupí do funkce*, klávesa `key:F10`.
139
137
: Podobá se předchozímu příkazu „Krokovat“, ale chová se jinak, jestliže dalším příkazem je volání funkce (ne vestavěné funkce jako `alert`, ale naší vlastní funkce).
140
138
141
-
Když si je srovnáme, příkaz „Krokovat“ vstoupí do vnořeného volání funkce a pozastaví běh na jejím prvním řádku, zatímco „Překročit další volání funkce“ spustí vnořené volání funkce, aniž bychom je viděli, a překročí její vnitřek.
142
-
139
+
Když si je srovnáme, příkaz „Krokovat“ vstoupí do vnořeného volání funkce a pozastaví běh na jejím prvním řádku, zatímco „Překročit“ spustí vnořené volání funkce a překročí její vnitřek.
140
+
143
141
Běh se pak ihned po volání této funkce pozastaví.
144
142
145
-
To se hodí, když si nepřejeme vidět, co se děje uvnitř volané funkce.
143
+
To se hodí, když nás nezajímá, co se děje uvnitř volané funkce.
146
144
147
-
<spanclass="devtools"style="background-position:-4px-194px"></span> -- „Step into“ („Pokročit do dalšího volání funkce“), klávesa `key:F11`.
148
-
: Podobá se „Krokovat“, ale chová se jinak v případě asynchronního volání funkce. Jestliže se teprve začínáte učit JavaScript, můžete tento rozdíl ignorovat, jelikož asynchronní volání funkcí ještě neznáme.
: Podobá se variantě „Krokovat“, ale chová se jinak v případě asynchronního volání funkce. Jestliže se teprve začínáte učit JavaScript, můžete tento rozdíl ignorovat, jelikož asynchronní volání funkcí ještě neznáme.
149
147
150
-
Do budoucna jen poznamenejme, že příkaz „Krokovat“ ignoruje asynchronní akce, například `setTimeout` (vyvolání funkce za určitou dobu), které se vykonávají později. Příkaz „Pokročit do dalšího volání funkce“ vstoupí do jejich kódu a počká na ně, pokud je to nutné. Podrobnosti viz [manuál k vývojářským nástrojům](https://developers.google.com/web/updates/2018/01/devtools#async).
148
+
Do budoucna si jen poznamenejme, že příkaz „Krokovat“ ignoruje asynchronní akce, například `setTimeout` (vyvolání funkce za určitou dobu), které se vykonávají později. Příkaz „Vnořit“ vstoupí do jejich kódu a počká na ně, pokud je to nutné. Podrobnosti viz [manuál k vývojářským nástrojům](https://developers.google.com/web/updates/2018/01/devtools#async).
151
149
152
-
<spanclass="devtools"style="background-position:-32px-194px"></span> -- „Step out“ („Postoupit ven z aktuální funkce“) pokračuje v běhu až do konce vykonávané funkce, klávesa `key:Shift+F11`.
150
+
<spanclass="devtools"style="background-position:-32px-194px"></span> -- „Step out“ („Vyskočit“) pokračuje v běhu až do konce vykonávané funkce, klávesa `key:Shift+F11`.
153
151
: Pokračuje v běhu a zastaví se až na posledním řádku právě vykonávané funkce. To se hodí, když jsme omylem vstoupili do volání funkce pomocí <spanclass="devtools"style="background-position:-200px-190px"></span>, ale ta nás nezajímá, a tak chceme co nejrychleji dospět k jejímu konci.
154
152
155
153
<spanclass="devtools"style="background-position:-61px-74px"></span> -- povolí/zakáže všechny zarážky.
@@ -183,15 +181,15 @@ Máme-li v kódu dostatek logování, uvidíme z těchto záznamů, co se děje,
183
181
184
182
## Shrnutí
185
183
186
-
Jak vidíme, existují tři hlavní způsoby, jak pozastavit skript:
187
-
1.Zarážka.
188
-
2.Příkaz`debugger`.
189
-
3.Chyba (jsou-li vývojářské nástroje otevřené a tlačítko <spanclass="devtools"style="background-position:-90px-146px"></span> je „zapnuté“).
184
+
Zjistili jsme, že existují tři hlavní způsoby, jak pozastavit skript:
185
+
1.Zarážkou.
186
+
2.Pomocí příkazu`debugger`.
187
+
3.Když se vyskytne chyba (jsou-li vývojářské nástroje otevřené a přepínač <spanclass="devtools"style="background-position:-90px-146px"></span> je „zapnutý“).
190
188
191
-
Když je skript pozastaven, můžeme jej ladit: prozkoumávat proměnné a krokovat kód, abychom viděli, kde se při jeho vykonávání něco pokazilo.
189
+
Když je skript pozastaven, můžeme jej ladit: prozkoumávat proměnné a krokovat kód, abychom viděli, kde a co se při jeho vykonávání pokazilo.
192
190
193
191
Vývojářské nástroje obsahují mnohem více možností, než jsme zde uvedli. Kompletní manuál najdete na <https://developers.google.com/web/tools/chrome-devtools>.
194
192
195
-
Informace z této kapitoly postačí k začátku ladění, ale později, zvláště budete-li vytvářet hodně materiálu v prohlížeči, se tam prosím podívejte a prostudujte si pokročilejší možnosti vývojářských nástrojů.
193
+
Informace o ladění, zmíněné v této kapitole, vám do začátku postačí, ale později, zvlášť když budetehodně pracovat s prohlížeči, se tam prosím podívejte a prostudujte si pokročilejší možnosti vývojářských nástrojů.
196
194
197
-
A také můžete klikat na různá místa vývojářských nástrojů a jen se dívat, co se ukáže. To je asi nejrychlejší způsob, jak se je naučit. Nezapomínejte na pravé tlačítko myši a kontextová menu!
195
+
A také můžete klikat na různá místa vývojářských nástrojů a zkoušet, co se objeví. To je asi nejrychlejší způsob, jak se je naučit. Nezapomínejte na pravé tlačítko myši a kontextová menu!
0 commit comments