ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ call stack ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅
ΠΡΠΎΡΡΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΈ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ²
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ Β«Recursion and the Call Stack Explained By Reading A BookΒ».
Π Π΅ΠΊΡΡΡΠΈΡ ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ), Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° return.
Π Π²ΠΎΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ·Π²Π°Π½Π½Π°Ρ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ, ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ°ΠΌΠ° ΡΠ΅Π±Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π·, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ Π²Π΅ΡΠ½Π΅Ρ Π΅Π³ΠΎ ΠΏΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ return.
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ.
Π Π΅ΠΊΡΡΡΠΈΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π° ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΠ°Π· Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
ΠΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ ΠΈΠ· ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°. Π Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΅ΡΠ΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² (ΠΎ Π½Π΅ΠΉ ΠΌΡ Π΅ΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ).
ΠΡΠΎ-ΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Π½Π°Π±ΠΎΡ ΠΊΠΎΡΠΎΠ±ΠΎΠΊ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΡΠΏΡΡΡΠ°Π½Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΡΠΎΠ±ΠΊΠΈ:
ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π±Π΅ ΠΌΠ°ΡΡΠ΅ΡΠΊΡ:
ΠΠΎ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ².
Π ΡΡΠΎΠΉ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ΅ΠΊΡΡΡΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² β ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ΄ΡΡΠΈΡ ΠΏΠΎΠ΄ΡΡΠ΄.
Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ, Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Π² JavaScript.
ΠΡΠΈΠΌΠ΅Ρ 1 β ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π»Ρ
Π€Π°ΠΊΡΠΎΡΠΈΠ°Π»Ρ ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΊΡΡΡΡ Π°Π»Π³Π΅Π±ΡΡ.
Π€Π°ΠΊΡΠΎΡΠΈΠ°Π» ΡΠΈΡΠ»Π° 3 Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ 3! ΠΈ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ 3*2*1, ΡΡΠΎ ΡΠ°Π²Π½ΠΎ 6.
ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π·ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΈΠΊΠ»Π° for, Π³Π΄Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π²Π½Π΅ ΡΠΈΠΊΠ»Π°:
ΠΠΎ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π»ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΈΠΊΠ», ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π½Π΅ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ n-1 Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π³Π΄Π΅ n β ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π».
Π― ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°, Π° Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΠΎΡΠ΅Π½ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΡΡΠΎ ΠΈ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅.
ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΡΡΠΎΠΊΡ 5, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ return ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΠ°ΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ.
Π’Π°ΠΊ ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ½Π΅Ρ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅? ΠΠ°ΠΊ Π½Π°ΠΌ ΡΠ²ΡΠ·Π°ΡΡ 4 Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π² ΠΈΡΠΎΠ³Π΅ Π²Π΅ΡΠ½ΡΠ»ΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 24?
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΠ°Π· Π·Π΄Π΅ΡΡ Π½Π°ΠΌ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΄Π²Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ β ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΈ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² β Π½Π°Π»Π°Π³Π°ΡΡΡΡ ΠΎΠ΄Π½Π° Π½Π° Π΄ΡΡΠ³ΡΡ. ΠΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π§ΡΠΎΠ±Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΡΡΠΎΠΈΡΡΡ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠ° ΠΎΠ½ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π½Π° Π»Π΅Π²ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ.
ΠΡΠ°ΠΊ, ΠΏΡΠΎΡ ΠΎΠ΄Ρ Π½Π°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΌΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ ΡΡΠ΅ΠΊ:
Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π²Π½ΠΈΠ·Ρ Π³ΠΈΡΠΊΠΈ. Π ΠΊΠΎΠ½ΡΠ΅ Ρ Π½Π°Ρ ΠΎΡΡΠ°Π΅ΡΡΡ 1*2*3*4, ΡΡΠΎ Π΄Π°Π΅Ρ 24.
ΠΡΠΎΡ ΡΡΠ΅ΠΊ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΏΠΎΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π²Π΅ΡΠ½Π΅Ρ 1. ΠΠ½ΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π² ΡΡΠ΅ΠΊΠ΅, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β 1.
ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² ΡΡΠ΅ΠΊΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ².
ΠΡΠ°ΠΊ, ΠΊΠΎΠ³Π΄Π° num=4, ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 4*getFactorial(3). ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΠΎΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ° ΠΌΡ Π½Π΅ ΡΠ·Π½Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ getFactorial(3). ΠΠΎΡ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ ΠΈ Π½ΡΠΆΠ΅Π½ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ²!
Π Π΅ΠΊΡΡΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π· ΠΏΠΎΠ΄ΡΡΠ΄. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΡ ΠΎΡΡΠ°Π±ΠΎΡΠΊΠΈ. Π‘Π°ΠΌΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ, Π° ΠΏΠ΅ΡΠ²ΡΠΉ βΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ.
ΠΠΎ Π½Π°ΡΠ° Π³ΠΈΡΠΊΠ° Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Ρ ΠΎΡΠΎΡΠ° Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·Π° ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π²ΠΎΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π°, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ, ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ²ΡΠ·Π°Π½Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ return:
ΠΡΠΈΠΌΠ΅Ρ 2 β ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΡΠ» ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ, ΠΎΠ½ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π·Π°Π΄Π°ΡΡ ΠΈΠ· ΠΊΡΡΡΠ° Π°Π»Π³Π΅Π±ΡΡ. Π€Π°ΠΊΡΠΎΡΠΈΠ°Π»Ρ Ρ ΠΎΡΠΎΡΠΈ, Π½ΠΎ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΎΠΉ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ.
Π‘ΡΠΎΠΈΡ Π·Π°Π΄Π°ΡΠ°: ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΡΡΡΠΎΠΊΡ.
Π’ΠΎ Π΅ΡΡΡ, Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΡΡΡΠΎΠΊΡ, Π³Π΄Π΅ Π±ΡΠΊΠ²Ρ ΡΡΡΠΎΠΊΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ input, Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΡΠΎ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΈΠΊΠ»Π° for, Π½ΠΎ ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ΅ΠΉ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΌ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΡΠ»ΠΎΠ²ΠΎ Β«catΒ».
ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΡ (ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ) Π±ΡΠΊΠ²Ρ Π² ΡΡΡΠΎΠΊΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΡΠ΅Π·Π°ΡΡ Π΅Π΅ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ. ΠΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ ΠΎΠΏΡΡΡ Π±Π΅ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ (ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ) Π±ΡΠΊΠ²Ρ.
Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ Π²Π΅ΡΠ½ΡΡΡ Π±ΡΠΊΠ²Ρ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
ΠΠΏΡΡΡ-ΡΠ°ΠΊΠΈ, Ρ ΠΎΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π³ΠΈΡΠΊΠ΅ Π²ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΡΡΠΈ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π² ΠΈΡΠΎΠ³ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ return.
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ: ΠΌΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΡΡΡΠΎΠΊΠΈ, Π° Π½Π΅ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΡΠΎΠΊ Π² ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ return ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²Π΅Π΄Ρ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π½Π΅ ΡΠ΅ΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π΄Π΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ:
ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΡΡΠΎΠΈΠΌ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π³ΠΈΡΠΊΠ΅, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ΅Π½.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΠΌ Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² ΡΡΠ΅ΠΊΠ΅, ΡΡΠΎΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ Π²ΠΎΡΡΠΎΠ·Π΄Π°ΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² JavaScript
ΠΡΠ»ΠΈ Π²Ρ β JavaScript-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌ ΡΡΠ°ΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JS-ΠΊΠΎΠ΄Π°. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ JavaScript, ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ. ΠΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ, ΠΏΠΎΡΠ²ΡΡΡΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² JavaScript.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (execution context) β ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠΏΡΠΎΡΡΠ½Π½ΠΎ, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° JavaScript. ΠΠΎΠ΄ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
βΠ’ΠΈΠΏΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
Π JavaScript ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΡΠΈΠΏΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
Π‘ΡΠ΅ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
Π‘ΡΠ΅ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (execution stack), ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠ΅ΠΊΠΎΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (call stack), ΡΡΠΎ LIFO-ΡΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ Π² Ρ ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ³Π΄Π° JS-Π΄Π²ΠΈΠΆΠΎΠΊ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ, Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ΅ΠΊ. ΠΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅ΠΊΠ°.
ΠΠ²ΠΈΠΆΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ΅ΠΊΠ°. ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ ΡΡΠ΅ΠΊΠ°.
ΠΠ·ΡΡΠΈΠΌ ΡΡΡ ΠΈΠ΄Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
ΠΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ²
ΠΠΎΠ³Π΄Π° Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅Ρ, JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ first() Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅ΠΊΠ°.
ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ first() Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΌ, Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΡΠ΅ΠΊΠ°.
Π ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² ΠΈ ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ JS-Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ, ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΡΡΠ°Π΄ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΎ ΡΡΠ°Π΄ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
βΠ‘ΡΠ°Π΄ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ JavaScript-ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
ΠΡΠΈΠ²ΡΠ·ΠΊΠ° this
Π Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ this ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ window ).
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ ΠΎΠ½Π° Π²ΡΠ·Π²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this ΠΏΡΠΈΠ²ΡΠ·Π°Π½ΠΎ ΠΊ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ this ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² undefined (Π² ΡΡΡΠΎΠ³ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅). Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠΎΠ΄ Β«ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌΒ» Π·Π΄Π΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° ΠΏΠΎΠ΄ Β«ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ» β ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ β Π½Π° ΡΡΠ½ΠΊΡΠΈΡ) ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π°:
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (Variable Environment) β ΡΡΠΎ ΡΠΎΠΆΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ( VariableStatement ) Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ½ΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΌΠΈ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΠ΅ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ:
Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π»ΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Β» (Hoisting). ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Β«ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡΡΡΒ» Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΠΈΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΈΠΌ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
βΠ‘ΡΠ°Π΄ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°
ΠΡΠΎ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°. ΠΠ° ΡΡΠΎΠΉ ΡΡΠ°Π΄ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.
ΠΡΠΎΠ³ΠΈ
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript-ΠΊΠΎΠ΄Π°. Π₯ΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ JS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Π·Π½Π°ΡΡ Π²ΡΡ ΡΡΠΎ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΈ Π³Π»ΡΠ±ΠΆΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΡΠ·ΡΠΊΠ°, Ρ ΡΠ°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΠ°ΠΊ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΠΎ ΡΡΠΌ Π΅ΡΡ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ JavaScript-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ?
ΠΡΠΎΡΠΌΠΎΡΡ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° “Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ²” Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΊΠ½Π° Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΡΠ΅ΠΊΠ΅. Π ΠΎΠΊΠ½Π΅ Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΠ°ΡΡΠΈ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π² ΠΎΠΊΠ½Π΅ Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]
ΠΠΊΠ½ΠΎ Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅ “ΠΡΠ»Π°Π΄ΠΊΠ°” Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Eclipse.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π·Π΄Π΅ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ»ΠΈ Π²ΡΠΏΡΡΠΊΠ°. Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅Π½Ρ Π‘Π΅ΡΠ²ΠΈΡ ΠΏΡΠ½ΠΊΡ ΠΠΌΠΏΠΎΡΡ ΠΈ ΡΠΊΡΠΏΠΎΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π‘ΠΌ. ΡΠ°Π·Π΄Π΅Π» Π‘Π±ΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΡΠΎΡΠΌΠΎΡΡ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π² ΠΌΠ΅Π½Ρ ΠΡΠ»Π°Π΄ΠΊΠ° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΠΊΠ½Π° > Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΠ΅Π»ΡΠ°Ρ ΡΡΡΠ΅Π»ΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠ°Π΄Ρ ΡΡΠ΅ΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ ΠΊΠ°Π΄Ρ ΡΡΠ΅ΠΊΠ°, ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΠΎΠΊΠ½Π°Ρ : ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅, ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΈ ΠΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄. Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°Π΄Ρ ΡΡΠ΅ΠΊΠ°, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°Π΄Ρ ΡΡΠ΅ΠΊΠ°.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΎΠΊΠ½Π΅ “Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ²”
ΠΠ΅ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ β ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° Π’ΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΉ ΠΊΠΎΠ΄. Π ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΊΠ°Π΄ΡΡ Π½Π΅ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΊΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ ΠΊΠ°Π΄ΡΠΎΠ² Π½Π΅ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ.
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°Π΄Ρ ΡΡΠ΅ΠΊΠ° (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°)
Π ΠΎΠΊΠ½Π΅ Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΊΠ°Π΄Ρ ΡΡΠ΅ΠΊΠ°, ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ.
ΠΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΡΡΡ ΠΊΠ°Π΄Ρ Π² ΠΎΠΊΠ½Π΅ Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° ΡΡΠΎΡ ΠΊΠ°Π΄Ρ.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠ½ΠΊΡ ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΊΠ°Π΄ΡΡ.
Π ΡΠ΄ΠΎΠΌ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ ΠΊΠ°Π΄ΡΠΎΠΌ ΡΡΠ΅ΠΊΠ° ΠΏΠΎΡΠ²ΠΈΡΡΡ Π·Π΅Π»Π΅Π½Π°Ρ ΡΡΡΠ΅Π»ΠΊΠ° Ρ ΡΠΈΠ³ΡΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΠΎΠΌ. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π΄ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΠΌΠ΅ΡΠ΅Π½ ΠΆΠ΅Π»ΡΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ. ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π¨Π°Π³ ΠΈΠ»ΠΈ ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π² ΠΌΠ΅Π½Ρ ΠΡΠ»Π°Π΄ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡΡ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Π° Π½Π΅ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ°.
ΠΡΠΎΡΠΌΠΎΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΡΠ΅ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ²
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΎΠΊΠ½Π° “Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ²”
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π° Π² ΡΠΎΡΠΊΠ΅ Π²ΡΡ ΠΎΠ΄Π° Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΠ»ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ
ΠΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ²
Π Visual Studio Enterprise (ΡΠΎΠ»ΡΠΊΠΎ) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Π ΠΎΠΊΠ½Π΅ Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π½Π° ΠΊΠ°ΡΡΠ΅ ΠΊΠΎΠ΄Π° (CTRL + SHIFT + ` ).
ΠΡΠΎΡΠΌΠΎΡΡ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΡΠ΅ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (C#, C++, Visual Basic, F#)
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ (C#, C++, Visual Basic, F#)
Π§ΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
Π ΠΎΠΊΠ½Π΅ Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠ°Π΄Ρ ΡΡΠ΅ΠΊΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΠ°Π΄Ρ Π·Π°ΡΠ΅Π½ΡΠ΅ΡΡΡ.
Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π‘Π΅ΡΠ²Π΅ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ) (Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ) ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΠΏΡΡΠΈ ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΡΠΈ ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ
Π ΠΎΠΊΠ½Π΅ Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠ½ΠΊΡ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ.
ΠΠΎΡΠ²ΠΈΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΎΡΠΊΡΡΡΠΎΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π·Π½Π°ΡΠΎΠΊ “ΠΠ°ΠΏΠΊΠ°”.
Π ΠΏΠΎΠ»Π΅ ΠΠ΅ΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (.pdb) ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΊΡΡΡΠΎΡ.
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠ°. ΠΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΡΡΠΎ ΠΏΡΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ OK, ΡΡΠΎΠ±Ρ Π·Π°ΠΊΡΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ call stack?
ΠΠΎΠ³Π΄Π°-ΡΠΎ Π±ΡΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ goto, ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΈ ΡΠ°ΠΊ
ΠΡ ΡΡΠΎ-ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΏΠ΅ΡΠ½Π°, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΠ°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π½Π°Π·Π°Π΄.
ΠΠΎ ΡΠ°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΡΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ· ΡΠ°Π·Π½ΡΡ
ΠΌΠ΅ΡΡ, Π° ΠΏΠΎΡΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΈ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΡΠ°. ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ goto, Π° call (Π²ΡΠ·ΠΎΠ²), ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ»Π°Π΄Π΅Ρ Π² ΡΡΠ΅ΠΊ Π°Π΄ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ Π² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ return, ΠΎΠ½ Π±Π΅ΡΠ΅Ρ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π°Π΄ΡΠ΅Ρ ΠΈ ΠΏΠΎ Π½Π΅ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π°Π·Π°Π΄.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠ΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΡΡΡΠΈ Π²ΡΠ·Π²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠ·Π²Π°ΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΠΎ. ΠΠΎΡΠΎΠΌ Π²ΡΠ΅ call-Ρ Π±ΡΠ΄ΡΡ ΠΊΡΠ°ΡΠΈΠ²ΠΎ Π·Π°ΠΊΡΡΡΡ return-Π°ΠΌΠΈ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
Π Π΄Π°Π½Π½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Ρ Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ:
1. ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ main, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ program1 (Π² ΡΡΠ΅ΠΊ ΠΊΠ»Π°Π΄Π΅ΡΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΠΎΠΉ)
2. ΠΈΠ· Π²ΡΠ·Π²Π°Π½Π½ΠΎΠ³ΠΎ program1 Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ program3 (Π² ΡΡΠ΅ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ°ΠΌ ΡΠΆΠ΅ Π΄Π²Π΅)
3. ΠΈΠ· program3 ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ, Π±Π΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΡΠ΅ΠΊΠ° (Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² program1)
4. ΡΠ½ΠΎΠ²Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ, Π±Π΅ΡΡ Π°Π΄ΡΠ΅Ρ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π² main
5. ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ program2-program3-program2-main
Π‘ΡΠ΅ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΡΡΠ΅Ρ ΡΠ²Π΅ΡΡ
Ρ Π²Π½ΠΈΠ·, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° return Π±Π΅ΡΠ΅Ρ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΠΎ Π½Π΅ΠΌΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΡΠ΅ΠΊ Π½Π΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ΅Π½. Π΄Π΅ΡΡΡΡ ΠΈΠ»ΠΈ ΡΡΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈ ΠΎ ΡΠ΅ΠΌ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠ°Ρ
, Π½ΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΈΠ»ΠΈ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄, ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Π°Π΄ΡΠ΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 4 Π±Π°ΠΉΡΠ°), ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΡ ΠΈ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΡ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π½Π° ΡΠΎΡΠΊΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²Π° ΠΈΠ»ΠΈ ΠΏΡΠΈ Π²ΡΠ±ΡΠΎΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ) ΡΠ·Π½Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°) ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°, ΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡΡ.
Call stack trace of exception:
ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°Ρ,
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² JavaScript
ΠΡΠ»ΠΈ Π²Ρ β JavaScript-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌ ΡΡΠ°ΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JS-ΠΊΠΎΠ΄Π°. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ JavaScript, ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΡΠ²ΡΡΡΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² JavaScript.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (execution context) β ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠΏΡΠΎΡΡΠ½Π½ΠΎ, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° JavaScript. ΠΠΎΠ΄ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
Π’ΠΈΠΏΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
Π JavaScript ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΡΠΈΠΏΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
Π‘ΡΠ΅ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
Π‘ΡΠ΅ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (execution stack), ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠ΅ΠΊΠΎΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (call stack), ΡΡΠΎ LIFO-ΡΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ Π² Ρ ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ³Π΄Π° JS-Π΄Π²ΠΈΠΆΠΎΠΊ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ, Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ΅ΠΊ. ΠΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅ΠΊΠ°.
ΠΠ²ΠΈΠΆΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ΅ΠΊΠ°. ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ ΡΡΠ΅ΠΊΠ°.
ΠΠ·ΡΡΠΈΠΌ ΡΡΡ ΠΈΠ΄Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
ΠΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ³Π΄Π° Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅Ρ, JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ first() Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅ΠΊΠ°.
ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ first() Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΌ, Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΡΠ΅ΠΊΠ°.
Π ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² ΠΈ ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ JS-Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ, ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΡΡΠ°Π΄ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΎ ΡΡΠ°Π΄ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
Π‘ΡΠ°Π΄ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ JavaScript-ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΊ:
ΠΡΠΈΠ²ΡΠ·ΠΊΠ° this
Π Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ this ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ window ).
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ ΠΎΠ½Π° Π²ΡΠ·Π²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this ΠΏΡΠΈΠ²ΡΠ·Π°Π½ΠΎ ΠΊ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ this ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² undefined (Π² ΡΡΡΠΎΠ³ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅). Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠΎΠ΄ Β«ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌΒ» Π·Π΄Π΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° ΠΏΠΎΠ΄ Β«ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ» β ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ β Π½Π° ΡΡΠ½ΠΊΡΠΈΡ) ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ:
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ:
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π° Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ β Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π°:
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (Variable Environment) β ΡΡΠΎ ΡΠΎΠΆΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ( VariableStatement ) Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ½ΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΌΠΈ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΠ΅ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ:
Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π’ΠΎ ΡΡΠΎ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π»ΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Β» (Hoisting). ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Β«ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡΡΡΒ» Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΠΈΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΈΠΌ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
Π‘ΡΠ°Π΄ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°
ΠΡΠΎ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°. ΠΠ° ΡΡΠΎΠΉ ΡΡΠ°Π΄ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.
ΠΡΠΎΠ³ΠΈ
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript-ΠΊΠΎΠ΄Π°. Π₯ΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ JS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Π·Π½Π°ΡΡ Π²ΡΡ ΡΡΠΎ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΈ Π³Π»ΡΠ±ΠΆΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΡΠ·ΡΠΊΠ°, Ρ ΡΠ°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ.




















