Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ
Π Π°Π·Π±ΠΎΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² Ρ PLY. ΠΡΠ½ΠΎΠ²Ρ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ PLY?
PLY β ΡΡΠΎ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠ° ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ
Π±ΡΠΊΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ: Python Lex-Yacc.
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎ ΠΏΠΎΡΡ ΡΡΠΈΠ»ΠΈΡ lex ΠΈ yacc Π½Π° python Π² ΠΊΡΠ°ΡΠΈΠ²ΠΎΠΉ ΠΎΠ±Π΅ΡΡΠΊΠ΅.
Π Π°Π±ΠΎΡΠ°ΡΡ Ρ ply ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΠΈ ΠΏΠΎΡΠΎΠ³ Π²Ρ
ΠΎΠ΄Π° Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΡΠ»Π΅Π²ΠΎΠΉ.
ΠΠ°ΠΏΠΈΡΠ°Π½ ΠΎΠ½ Π½Π° ΡΠΈΡΡΠΎΠΌ ΠΏΠΈΡΠΎΠ½Π΅ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ LALR(1) ΠΏΠ°ΡΡΠ΅Ρ, Π½ΠΎ ΠΊΠΎΠΌΡ ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ?
Π― ΠΏΠΎ Π½Π°ΡΡΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊ (ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΠ²ΠΎ ΠΈΠ· Π²Π°Ρ) ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»ΠΈ Π² Π±ΠΎΠΉ!
Π§ΡΠΎ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ?
ΠΠ° ΡΠ°ΠΉΡΠ΅ Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ. Π ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ-ΡΠΎ Π½Π°Π²ΡΠΎΠ΄Π΅ ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΎΡΠ΅Π½Ρ ΠΎΡΠ΅Π½Ρ ΡΠ·ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° PHP π
ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΠΈ Π²Π·ΡΡ Ρ ΠΏΠΎΡΠΎΠ»ΠΊΠ°. ΠΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠ΄Π° Π½ΡΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡ ΠΎΠ΄Ρ ΠΌΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ PLY ΠΊΠ°ΠΊ state.
Lex β ΡΡΠΎ ΡΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ·ΡΠΊΠ°. ΠΡ ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡ Π² Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠ°ΠΊ-ΡΠΎ ΡΠ°ΠΊ.
Π§ΡΠΎ ΠΌΡ Π·Π΄Π΅ΡΡ Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΡΠΎΠΌΠ΅ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°? ΠΠΈΠ΄ΠΈΠΌ ΡΠΎΠΊΠ΅Π½Ρ (Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ):
PHP_START β ‘ _. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ.
ΠΡΡΠ°ΡΠΈ, Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΡΡΠΎ: LexToken(PHPFUNC,’echo’,5,59)?
PLY ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π΅Ρ Π΄Π»ΠΈΠ½Π½Π΅ΠΉΡΠ΅Π΅. ΠΠΎΡ ΠΏΠΎΡΡΠΎΠΌΡ echo ΠΈ Π½Π΅ ΠΏΠ°ΡΡΠΈΡΡΡ ΠΊΠ°ΠΊ PHPECHO. ΠΠ°ΠΊ ΡΡΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ? ΠΠ΅Π³ΠΊΠΎ. ΠΡΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π° Π² ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΡ ΡΠ°ΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ echo Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ. ΠΡΡΠ°ΡΠΈ ΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ΅ TOKEN: Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠΊΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ΅Π»Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ. Π§ΡΠΎ ΠΌΡ ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ.
ΠΠΎΡ. Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠΎΠ΄Π΅ Π²ΡΠ΅. ΠΠ° Π½Π΅ Π²ΡΠ΅.
ΠΠ΅ΠΏΠ»ΠΎΡ
ΠΎ Π±Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π§ΡΠΎ ΠΆΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² Π»Π΅ΠΊΡΠ΅Ρ:
ΠΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΠ°ΡΡΠ΅ΡΡ (parser.py).
Yacc β ΡΡΠΎ ΡΡΡΠΊΠ° (ΠΏΠ°ΡΡΠ΅Ρ), Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠΎΠΊΠ΅Π½Ρ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΡ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΡ). ΠΠΎΡ
ΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΡΠ°Π·Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠΎΠΌ Π½Π° ΡΠ°ΠΉΡΠ΅).
Π PLY Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ ply.yacc.
ΠΠΏΠΈΡΡΠ²Π°ΡΡ Π³ΡΠ°ΠΌΠ°ΡΠΈΠΊΡ Π² ply ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΡΠΎ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°ΡΠ»Π°ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠ»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Ρ Π½Π°Ρ ΡΠ½ΠΎΠ²Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ p_ΠΈΠΌΡΡΡΠ½ΠΊΡΠΈΠΈ, Π³Π΄Π΅ Π² doc-ΡΡΡΠΎΠΊΠ°Ρ
ΠΌΡ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΡ ΡΠ°ΠΌΡΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ php:
Π’Π΅ΠΊΡΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ. ΠΠΎ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ² ply.yacc Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ. Π Π΄Π°Π»ΡΡΠ΅ Ρ ΡΠΆΠ΅ Π²ΡΠ»ΠΎΠΆΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ ΠΏΠ°ΡΡΠ΅ΡΠ°.
ΠΡΠ°ΠΊ, Π²ΡΠ΄ΡΠ°Π½Π½ΡΠΉ ΠΊΡΡΠΎΠΊ ΠΈΠ· ΠΏΠ°ΡΡΠ΅ΡΠ°:
ΠΠΎ ΡΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΡΠ΅ β ΡΡΠΎ ΡΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ (ΡΠ»ΠΈΡΠΎΠ΅) ΠΏΡΠ°Π²ΠΈΠ»ΠΎ. ‘|’ ΠΊΠ°ΠΊ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ β ΡΡΠΎ ΠΠΠ, Π½Ρ ΠΈΠ»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠΎΠΊΠ΅Π½Π°.
ΠΠ΅ΠΆΠ΄Ρ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ ΠΈ Π»Π΅Π²ΠΎΠΉ/ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ ΠΏΡΠΎΠ±Π΅Π». Π’Π°ΠΊ Π»ΡΠ±ΠΈΡ ply. ΠΡΠ»ΠΈ ΠΏΡΠ°Π²Π°Ρ ΡΠ°ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΠΎΠΉ, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΈΡΠ΅ΠΌ. Π’ΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ, Π° ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΌΠΈ, Π±Π΅Π· ΠΏΡΠ΅ΡΠΈΠΊΡΠ° p_. Π’.Π΅. Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° p_str ΠΈ p_phpvar.
ΠΡΡΠ°ΡΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ (ΡΠ°ΡΡΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΏΡΠΎΡΡΠΈΡΠ΅):
ΠΠ½ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΊΠΎΠ΄Π°. ΠΡΠΎΡΡΠΎ ΡΠ»ΠΎΠΌΠ°ΡΡΠ΅ΡΡ Π΄ΡΡΠ³ΠΈΠ΅. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΠΈΡ Π½Π°Π΄ΠΎ Π² ΠΏΠΈΡΠΎΠ½Π΅), Π½ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ (str), ΡΡΠΎ ΠΈ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ply Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°.
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π΄Π΅ΡΠ΅Π²Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠ»Π°ΡΡ:
ΠΠ½ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Ρ ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ Π½ΡΠΆΠ½ΠΎΠ΅, ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄, ΡΡΠΎ ΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅.
Π Π°Π±ΠΎΡΠ° Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ JavaScript
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ°ΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π·Π°Π±ΡΡΡΠΉ console.log ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ. Π ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΎΡΠ½ΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅? Π‘ΠΏΡΠ°Π²ΡΡΡΡ Π»ΠΈ ΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ? Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ.
ΠΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ β Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΠΈΡΠΈΠ»Π»Π° Π§Π΅ΡΠΊΠ°ΡΠΈΠ½Π° (z6Dabrata) Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ HolyJS 2018 Piter.
ΠΠ± Π°Π²ΡΠΎΡΠ΅
ΠΠΈΡΠΈΠ»Π» ΡΠΎΠ΄ΠΈΠ»ΡΡ Π² ΠΠΎΡΠΊΠ²Π΅, ΡΠ΅ΠΉΡΠ°Ρ ΠΆΠΈΠ²Π΅Ρ Π² ΠΡΡ-ΠΠΎΡΠΊΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Firebase. ΠΠ±ΡΡΠ°Π΅Ρ Angular Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² Google, Π½ΠΎ ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅. ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΎΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Angular-ΠΌΠΈΡΠ°ΠΏΠ° Π² ΠΌΠΈΡΠ΅ β AngularNYC (Π° ΡΠ°ΠΊΠΆΠ΅ VueNYC ΠΈ ReactNYC). Π ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΡΠ°Π½Π³ΠΎ, ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ ΠΈ ΠΏΡΠΈΡΡΠ½ΡΠΌΠΈ Π±Π΅ΡΠ΅Π΄Π°ΠΌΠΈ.
ΠΠΎΠΆΠΎΠ²ΠΊΠ° ΠΈΠ»ΠΈ Π΄Π΅ΡΠ΅Π²ΠΎ?
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°: Π΄ΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΠΎΡΠ»Π°Π΄ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² git, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈΡΡ ΡΠΏΠ°ΡΡ. Π£ΡΡΠΎΠΌ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΡΠΊΠ°ΡΠ°Π»ΠΈ ΡΠ΅Π±Π΅ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ Π½Π°ΠΊΠ°Π½ΡΠ½Π΅ Π·Π°Π±ΡΠ»ΠΈ ΡΠ±ΡΠ°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΠΎΠ½Π° Ρ Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈ Π·Π°ΡΠΎΡΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄. Π‘ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅.
Π― Π½Π°ΠΏΠΈΡΠ°Π» 17 ΡΠ΅ΡΡΠΎΠ², ΠΏΡΡΠ°ΡΡΡ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ»ΠΎΠΌΠ°ΡΡ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΉ.
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΡΡ ΠΏΡΠΎΠΉΠ΄Π΅Π½.
Π Π΅ΡΠ»ΠΈ Π²Π΄ΡΡΠ³ ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΡΡΡΠΎΠΊΡ Β«console.logΒ»?
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ console.log Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ»ΠΎΠ²Π°.
ΠΡΠΎΠΉΠ΄Π΅Π½ΠΎ Π»ΠΈΡΡ Π΄Π²Π° ΡΠ΅ΡΡΠ°, Π½ΠΎ ΡΡΠΎ Π΅ΡΠ»ΠΈ console.log Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Π΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ?
ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠ°ΡΡΠ΅Ρ Π½Π΅ ΡΡΠΎΠ³Π°Π» ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Β«console.logΒ» ΠΈΠ· ΡΡΡΠΎΠΊ:
ΠΠ΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π΅ Π΄Π°ΡΡ ΠΏΡΠΎΠΉΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ΅ΡΡΠ°ΠΌ:
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π·Π°ΡΠ΅Ρ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ, Π²ΡΠ΅ 17 ΡΠ΅ΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠΉΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ. ΠΠΎΡ ΡΠ°ΠΊ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΠ‘Π.
ΠΠ°ΠΊ Π²ΡΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π΄Π΅ΡΠ΅Π²ΡΡ?
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ JSON-ΡΠ°ΠΉΠ» ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΎΠΊΠΎΠ»ΠΎ 300 ΡΡΡΠΎΠΊ. ΠΡΠΊΠ»ΡΡΠΈΠΌ ΠΈΠ· ΠΈΡ ΡΠΈΡΠ»Π° ΡΡΡΠΎΠΊΠΈ ΡΠΎ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ. ΠΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π» body. ΠΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π°Ρ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ. Π ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 100 ΡΡΡΠΎΠΊ. ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅Ρ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ body (ΠΎΠΊΠΎΠ»ΠΎ 300 ΡΡΡΠΎΠΊ) β ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ Π² ΠΊΠΎΠ΄Π΅ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π΄Π΅ΡΠ΅Π²Π΅:
ΠΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΡΡ Numeric Literal, ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°Π».
Π£ΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ΅ Π½Π°ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ console.log. Π Π½Π΅ΠΌ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ.
ΠΡΠ»ΠΈ log β ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΠ³Π΄Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Π°, Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ β ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΅ΡΡΡ ΠΈΠΌΡ β log.
ΠΠΈΡΠ΅ΡΠ°Π»Ρ Π±ΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ: ΡΠΈΡΠ»Π°, ΡΡΡΠΎΠΊΠΈ, ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, boolean, null.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ Β«console.logΒ»
ΠΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Π°, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ Member Expression. ΠΠ· Π½Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° console Π²Π½ΡΡΡΠΈ Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ log.
ΠΠ±Ρ ΠΎΠ΄ ΠΠ‘Π
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π² ΠΊΠΎΠ΄Π΅. ΠΠ»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° Π΄Π΅ΡΠ΅Π²Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° babel-traverse.
ΠΠ°Π½Ρ ΡΠ΅ ΠΆΠ΅ 17 ΡΠ΅ΡΡΠΎΠ². Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Β«console.logΒ»:
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ. const ast = babylon.parse(code); Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ast ΠΏΠ°ΡΡΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈΠ· ΠΊΠΎΠ΄Π°. ΠΠ°Π»Π΅Π΅ Π΄Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ babel-parse ΡΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ. ΠΡΠ΅ΠΌ Π² Π½Π΅ΠΌ ΡΠ·Π»Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π²Π½ΡΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΡΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ hasConsoleLog Π² true, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΡΠ·Π»ΠΎΠ² ΠΈ ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠΉ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ.
ΠΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ Π΄Π΅ΡΠ΅Π²Ρ, Π±ΡΠ°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΡΠ·Π»ΠΎΠ², ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ², ΠΈΡΠΊΠ°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ Π½ΠΈΡ Π΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ², ΡΠΈΠΏΡ β ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠ΄ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ babel-types:
Π’ΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΠΠ‘Π Ρ ΠΏΠΎΠΌΠΎΡΡΡ babel-traverse
ΠΠ»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°Ρ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ console.log ΡΡΠ°Π·Ρ ΡΠ΄Π°Π»ΡΠ»ΡΡ ΠΈΠ· ΠΊΠΎΠ΄Π° β Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅.
ΠΠ· ΡΡΠ½ΠΊΡΠΈΠΈ removeConsoleLog Ρ Π½Π°Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π±ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ babel-generator, Π²ΠΎΡ ΡΠ°ΠΊ:
hasConsoleLog => babelGenerator(ast).code
Π Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ debugger?
ΠΠ° ΡΡΠΎΡ ΡΠ°Π· Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ASTexplorer. Debugger ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ ΡΠ·Π»ΠΎΠ² debugger statement. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠΉ Π²ΠΈΠ΄ ΡΠ·Π»Π°, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΉΡΠΈ debugger statement. ΠΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ESLint (Π½Π° ASTexplorer).
ASTexplorer ΡΡΡΡΠΎΠ΅Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠ»Π΅Π²Π°, Π° ΡΠΏΡΠ°Π²Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΠΠ‘Π. ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ: JSON ΠΈΠ»ΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Π΄ΡΠ΅Π²Π°.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ESLint, ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π·Π° Π½Π°Ρ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΏΠΎΠΈΡΠΊΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΡΠ΄Π°ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΉΡΠΈ Π² Π½Π΅ΠΌ ΡΡΡΠΎΠΊΡ debugger. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΡΡΠ΅Ρ ΠΠ‘Π. ΠΠΏΡΠΎΡΠ΅ΠΌ ΠΈ ΡΠ°ΠΌΠΈΡ ΠΠ‘Π Π² JavaScript ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄ΠΎΠ². Π§Π΅ΠΌ-ΡΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎΡΠ»ΠΎΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·Π½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π»ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊ debuggerβΠ°:
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π°:
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ debugger ΠΈΠ· ΠΊΠΎΠ΄Π°.
Π§Π΅ΠΌ Π΅ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΠ‘Π
Π― Π»ΠΈΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΠ‘Π Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ Angular ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ. ΠΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΡΠΎ-ΡΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°ΡΡΠΈΡΡΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΌΠ΅ΡΠΎΠ΄, Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΈ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π΅ΡΠ΅. Π₯ΠΎΡΡ ΡΠ΅ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠ΄Π΅Ρ ΠΎ Javascript, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² TypeScript ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΠ‘Π, ΡΠ°Π·Π½ΠΈΡΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΡΠΈΠΏΠΎΠ² ΡΠ·Π»ΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡΠ΅. Π ΡΠΎΠΌ ΠΆΠ΅ ASTExplorer ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠ° TypeScript.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΡΠ»ΠΎΠΊ Π΄Π»Ρ Babel
ΠΠΎΠ½ΡΡ
ΠΠ°ΠΊ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π°Ρ console.log Π² ΠΊΠΎΠ΄Π΅? ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π°ΡΡ IDE! Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Β«Π½Π°ΠΉΡΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡΒ», ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ±ΡΠ°Π², Π² ΠΊΠ°ΠΊΠΈΡ
ΠΌΠ΅ΡΡΠ°Ρ
ΠΊΠΎΠ΄Π° ΠΈΡΠΊΠ°ΡΡ.
Π’Π°ΠΊΠΆΠ΅ Π² Intellij IDEA Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Β«ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π½Π°ΠΉΡΠΈ Π½ΡΠΆΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠ° Π² ΠΊΠΎΠ΄Π΅, ΠΊ ΡΠ»ΠΎΠ²Ρ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΠ‘Π.
24-25 Π½ΠΎΡΠ±ΡΡ ΠΠΈΡΠΈΠ»Π» Π²ΡΡΡΡΠΏΠΈΡ Π½Π° ΠΌΠΎΡΠΊΠΎΠ²ΡΠΊΠΎΠΉ HolyJS Ρ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠΌ Β«JavaScript *LOVES* binary dataΒ»: ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠΊΠΎΠΏΠ°Π΅ΠΌΡΡ Π² Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ *.gif-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΡΡΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Protobuf ΠΈΠ»ΠΈ Thrift. ΠΠΎΡΠ»Π΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΠΈΡΠΈΠ»Π»ΠΎΠΌ ΠΈ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π² Π΄ΠΈΡΠΊΡΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π·ΠΎΠ½Π΅.
Π‘ΠΠΠΠ ΠΠΠΠΠ
ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°
ΠΠ΅ΡΠ΅Π²ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ²
ΠΠ΅ΡΠ΅Π²ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ² (= Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊ ΡΡΡΡΠΊΡΡΡΡ ΡΡΠ°Π· ) ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈ Π½Π΅ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ·Π»Ρ. Π Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΠ·Π»Π°Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ Π½Π΅ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌΠΈ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ, Π° Π»ΠΈΡΡΠΎΠ²ΡΠ΅ ΡΠ·Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ. ΠΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ²; ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ John hit the ball :
ΠΠ΅ΡΠ΅Π²ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ Π΄Π΅ΡΠ΅Π²ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ·Π»Ρ ΠΊΠ°ΠΊ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠ΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡΠΈΠ·Π½Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΈ Π½Π΅ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌΠΈ. Π ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΎΠ½ΠΈ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ·Π»ΠΎΠ². ΠΠ΅ΡΠ΅Π²ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π ΡΡΠΎΠΌ Π΄Π΅ΡΠ΅Π²Π΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΡΡΠ°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (S, VP ΠΈ NP), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ Π°Π½Π°Π»ΠΎΠ³Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ². ΠΠ°ΠΊ ΠΈ Π² Π΄Π΅ΡΠ΅Π²Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ², ΡΡΡΡΠΊΡΡΡΠ° ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΠΏΡΠΈΠ·Π½Π°Π΅ΡΡΡ. ΠΡΠ±ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΡΠ°ΡΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΈΠ·Π½Π°Π΅Ρ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠ΅Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΠΆΠΎΠ½ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅, Π²ΡΡΠ°ΠΆΠ°ΡΡΠ΅Π΅ ΠΌΡΡ, ΠΊΠ°ΠΊ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ, ΠΊΠ°ΠΊ ΠΈ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ².
Π Π°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠΈΠ½Π³Π΅Π½ΡΠΎΠΌ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΈΠΌΠ΅Π΅Ρ Π΄Π°Π»Π΅ΠΊΠΎ ΠΈΠ΄ΡΡΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ. ΠΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, Π½ΡΠΆΠ½Π° Π»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ², ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠΌ ΡΠΏΠΎΡΠΎΠ².
ΠΠ°ΡΠΊΠ΅ΡΡ ΡΡΠ°Π·
ΠΠ°ΡΠΊΠ΅ΡΡ ΡΡΠ°Π· ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² (ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎ Π΄Π΅ΡΠ΅Π²ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ² ), Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ°ΡΡΠΎ Π΄Π°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ Β«Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ Β», ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ , ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅ Π΄Π΅ΡΠ΅Π²Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΡΡΠ³ΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ, ΡΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΡΠ΅ΠΎΡΠΈΠΈ ΠΈ ΠΎΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° Ρ ΠΎΡΠ΅Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JS: Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ, ΠΏΠ°ΡΡΠΈΠ½Π³ ΠΈ Π΅Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
ΠΡΠ΅ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ JavaScript-ΠΊΠΎΠ΄ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΡΠ°ΡΡΠ°ΡΡΡΡ Π΄ΠΎ ΠΏΡΡΠΌΠΎ-ΡΠ°ΠΊΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ². Π ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° β ΡΠ΅ΠΌ Π΄ΠΎΠ»ΡΡΠ΅ Π±ΡΠ°ΡΠ·Π΅Ρ Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ. ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ, Π΅Ρ Π΅ΡΡ Π½Π°Π΄ΠΎ ΡΠ°ΡΠΏΠ°ΡΡΠΈΡΡ, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ 14 ΡΠ°ΡΡΠΈ ΡΠ΅ΡΠΈΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΎΠ± ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ JavaScript. Π ΠΈΠΌΠ΅Π½Π½ΠΎ, ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄ΡΡ ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ JS-ΠΊΠΎΠ΄Π°, ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΠΎΡΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ, ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π΄ΠΎΠ±ΠΈΠ²ΡΠΈΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Ρ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎΠ± Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΡΠ΅Π²ΡΡΡ , ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Ρ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ·ΡΠΊ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, Π²Π°ΠΌ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π΅ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ Π΅Π³ΠΎ Π² Π½Π΅ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½. Π ΡΠΎΠ»ΠΈ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π²ΡΡΡΡΠΏΠ°ΡΡ Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ. ΠΠ΅Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΈΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅ (JavaScript, Python, Ruby), ΠΈΠ»ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΠΎΠΌ (C#, Java, Rust), Π²Π°Ρ ΠΊΠΎΠ΄, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ, Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΡΠ°ΠΏ ΠΏΠ°ΡΡΠΈΠ½Π³Π°, ΡΠΎ Π΅ΡΡΡ β ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π² ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ (Abstract Syntax Tree, AST).
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΠ½ΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ³ΡΠ°ΡΡ Π²Π°ΠΆΠ½Π΅ΠΉΡΡΡ ΡΠΎΠ»Ρ Π² ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅, Π² Ρ ΠΎΠ΄Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΡΠ»Π΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ AST ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΡΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π²
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°Ρ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Ρ . ΠΠ½ΠΈ, Π² ΠΌΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ . ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΡ ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΈΠΌ ΠΊΠΎΠ΄. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ, ΠΈΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΡΡΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠΌΠΎΠ³ΡΡ Π² ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΡΠΎΠΊ, Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΅Π³ΠΎ Π±ΡΠ΄ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ°ΡΡΠ΅Ρ Π΄Π»Ρ JavaScript. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ECMAScript. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ β Esprima ΠΈ Acorn. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΠΏΠ°ΡΡΠ΅ΡΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ.
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΡΠ°Π½ΡΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ². ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°Π½ΡΠΏΠΈΠ»ΡΡΠΎΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° Python Π² ΠΊΠΎΠ΄ Π½Π° JavaScript. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΈΠ΄Π΅Π΅, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½ΡΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Python-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ΄ Π½Π° JavaScript. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΡ Π²Ρ Π·Π°Π΄Π°Π΄ΠΈΡΠ΅ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΡ Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ β ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° Π½Π΅ΠΊΠΎΠ΅ΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΊΠΎΠ΄ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² AST, ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ, ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠΌΠΈΡΡΡΡ ΡΠ·ΡΠΊ. ΠΠΎΡΠ»Π΅ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡ ΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊ AST, Π½ΠΎ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ² Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΡΡΠΈΠ½Π³ JavaScript-ΠΊΠΎΠ΄Π°
ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΠΎΡΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΡΡ JavaScript-ΡΡΠ½ΠΊΡΠΈΡ:
ΠΠ°ΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΈΡΡΠ½ΠΊΠ΅.
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ β ΡΠΏΡΠΎΡΡΠ½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ°. ΠΠ°ΡΡΠΎΡΡΠ΅Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΡΠ° Π³Π»Π°Π²Π½Π°Ρ ΡΠ΅Π»Ρ β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, Π²ΠΎ ΡΡΠΎ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ β Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΠ°ΠΉΡΠΎΠΌ AST Explorer. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ AST Π΄Π»Ρ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° JS-ΠΊΠΎΠ΄Π°, Π΅Π³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΠΎΠ»Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΡ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JS-ΠΏΠ°ΡΡΠ΅Ρ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΏΠ°ΡΡΠΈΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ β ΡΡΠΎ Π·Π°Π΄Π°ΡΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ°. Π ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠΌΡΡΠ»Π΅ Π²Ρ ΠΏΡΠ°Π²Ρ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π·Π°ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JS-ΠΊΠΎΠ΄Π°.
ΠΡΠΈΡΠΌΠΎΡΡΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠΈΡΡΠ½ΠΊΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΠΌ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅.
ΠΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ JS-ΠΊΠΎΠ΄Π°
ΠΠΈΠ΄ΠΈΡΠ΅? ΠΡΠ»ΠΈ Π½Π΅Ρ β ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅ΡΡ ΡΠ°Π·. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ, Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ, Π±ΡΠ°ΡΠ·Π΅ΡΡ ΡΡΠ°ΡΡΡ 15-20% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠ°ΡΡΠΈΠ½Π³ JS-ΠΊΠΎΠ΄Π°. Π ΡΡΠΎ β Π½Π΅ Π½Π΅ΠΊΠΈΠ΅ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ β ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ JavaScript. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² 15% ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π²Π°ΠΌ Π½Π΅ ΡΠ°ΠΊΠΈΠΌ ΡΠΆ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌ, Π½ΠΎ, ΠΏΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ. Π’ΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 0.4 ΠΠ± JavaScript-ΠΊΠΎΠ΄Π°, Π° ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΏΠ°ΡΡΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 370 ΠΌΡ. ΠΠΏΡΡΡ ΠΆΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π² ΡΡΠΎΠΌ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ. Π Π΄Π°, ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΠΎΠΈΡ Π·Π°Π±ΡΠ²Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ β Π»ΠΈΡΡ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π΅Π³ΠΎ Π² AST. Π‘ΡΠ΄Π° Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ Π·Π°Π΄Π°Ρ, ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ β Π·Π°Π΄Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ HTML ΠΈ CSS ΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΈΡΡΠΌ, ΡΠ΅ΡΡ ΡΡΡ ΠΈΠ΄ΡΡ Π»ΠΈΡΡ ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ . Π ΡΠ»ΡΡΠ°Π΅ Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Π²ΡΡ Π΅ΡΡ Ρ ΡΠΆΠ΅. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π²ΡΠ΅ΠΌΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² 2-5 ΡΠ°Π· Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π½Π° Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ . ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ.
ΠΡΠ΅ΠΌΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° 1 ΠΠ± JS-ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
ΠΠ΄Π΅ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° 1 ΠΠ± JS-ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ .
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡΡΡ, Π½Π° ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°Π΄Π°Ρ. ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π²ΡΡ ΡΡΠΎ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΎΡΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡ ΡΡΠΈ ΠΎΡΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΠΈΡΡ ΡΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π²ΡΡ ΡΡΠΎ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π° Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π·Π°ΠΉΡΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ°ΡΠΈΡΡΡ Π½Π° ΠΏΠ°ΡΡΠΈΠ½Π³ ΠΊΠΎΠ΄Π°, Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, ΠΈ Π½Π° Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π΅ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅.
ΠΠ½Π°Π»ΠΈΠ· ΡΠ°ΠΉΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
Π Π½Π΅ΡΡΠ°ΡΡΡΡ, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΉΡΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. Π’ΡΡ Π½Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΠ΄ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²ΡΠΎΠ΄Π΅ DeviceTiming. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ DeviceTiming ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ . Π Π°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌΠΎΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², Ρ Π½Π°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΈ JS-Π΄Π²ΠΈΠΆΠΊΠΈ
JS-Π΄Π²ΠΈΠΆΠΊΠΈ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
ΠΠ²ΠΈΠΆΠΎΠΊ V8 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ΠΠΎΠ΄ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠ°ΡΡΠΈΠ½Π³ΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π·Π°Π³ΡΡΠΆΠ°ΡΡΠΈΡ ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ, ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½ΠΎ, Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, Π½Π°ΡΠΈΠ½Π°Ρ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π°ΡΠ°Π»Π° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΡΠΎ Π²Π΅Π΄ΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠ°ΡΡΠΈΠ½Π³ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠ°, ΡΡΠΎ Π΄Π°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 10% ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ ΡΡΡΠ°Π½ΠΈΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅.
JavaScript-ΠΊΠΎΠ΄ ΠΎΠ±ΡΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΎΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΠ΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π½Π° Π΄ΡΡΠ³ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠΎ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Π² Chrome 42 ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΡΠ°Π½ΠΈΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π° ΡΠΆΠ΅ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π΅Ρ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ, ΠΏΠ°ΡΡΠΈΠ½Π³ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Chrome ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 40% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π·Π°Π΄Π°ΡΠ°Ρ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΡΡΠΎ Π²Π΅Π΄ΡΡ ΠΊ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π·Π°ΡΡΠ΄Π° ΠΈΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠΎΠ².
ΠΠ²ΠΈΠΆΠΎΠΊ Carakan, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Opera ΠΈ ΡΠΆΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π½Π° V8, ΠΌΠΎΠ³ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠΆΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠΈ ΡΠΊΡΠΈΠΏΡΡ Π±ΡΠ»ΠΈ Π±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π±ΡΠ»ΠΈ Π±Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°. ΠΡΠ° ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΡΠ°Π³Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ½Π° ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π΅Π±-ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ. Π ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΡΠ°Π±ΠΎΡΠ°Ρ Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄.
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ SpiderMonkey, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² FireFox, Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΡΡΠ΄. ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎ Π΅ΡΡΡ β ΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌ ΠΈ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. Π’Π°ΠΊ, ΠΠ°ΡΠ΅ΠΉ Π‘ΡΠ°ΡΠΎΠ²ΡΠΊ, Π²Π΅Π΄ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Safari, Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Safari Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»Π°ΡΡ, Π½ΠΎ ΠΎΠ½Π° Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅Π½Π΅Π΅ 2% ΠΎΠ±ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ Π²Π»ΠΈΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π° ΠΏΠ°ΡΡΠΈΠ½Π³ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° JS. Π Ρ ΠΎΠ΄Π΅ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π΅Π»Π°Π΅ΡΡΡ Π²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅, ΡΡΠΎΠ±Ρ, Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°Π³. ΠΠ°ΠΊΠΈΠΌ Π±Ρ Π±ΡΡΡΡΡΠΌ Π½ΠΈ Π±ΡΠ» ΠΏΠ°ΡΡΠΈΠ½Π³, ΠΎΠ½, Π²ΡΡ ΠΆΠ΅, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π° ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠ°ΡΡΠΈΠ½Π³Π° β ΡΡΠΎ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ ΡΠ°Π±ΠΎΡΠ΅
ΠΠ°ΠΊ ΠΌΡ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ Π²ΡΡΠ΅, Ρ ΠΎΡΠΎΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ²Π΅ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΠ°ΡΡΠΈΠ½Π³Π΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ, Π½ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ ΡΠ°Π±ΠΎΡΠ΅. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠΌ JS-ΠΊΠΎΠ΄Π°, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠ΄ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΌΠ°, Π³ΠΎΡΠΎΠ²ΡΡΠΈΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ, Π΄Π° ΠΈ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π²Π΅ΡΠΎΡΡΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π·Π°ΠΉΠΌΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ Ρ ΠΊΠΎΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΡΠΌΠ½ΠΎΠ³ΠΎ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΡΠΌ ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΅ΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π° Π½Π΅ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠΊΠ° ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΠ΄ΠΈΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΡ, Π½ΡΠΆΠ½ΠΎΠ΅ Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠ΅Π»ΠΎΠΌ. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ°ΡΡΠ΅ΡΠ½ PRPL ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΊΠΎΠ΄Π°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, Π΅ΡΡΡ Π»ΠΈ Π² Π½ΠΈΡ ΡΡΠΎ-ΡΠΎ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠ΅, ΡΠ°ΠΊΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π»ΠΈΡΡ ΠΊ Π½Π΅ΠΎΠΏΡΠ°Π²Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΡ ΠΌΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΡΡ ΡΠ΅ΠΌΡ, Π΄ΠΎΡΡΠΎΠΉΠ½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°. ΠΠ΅ΡΠ½ΡΠΌΡΡ ΠΊ ΠΏΠ°ΡΡΠΈΠ½Π³Ρ.
ΠΡΠ°ΠΊ, ΡΠ΅Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΏΠΎΠΌΠΎΡΡ ΠΏΠ°ΡΡΠ΅ΡΡ Π±ΡΡΡΡΠ΅Π΅ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ. Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ JS-ΠΏΠ°ΡΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΊΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅, ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠ·ΠΆΠ΅. ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°Π½ΠΈΡΡ , ΠΏΠ°ΡΡΠ΅Ρ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΆΠ°Π΄Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° (eager parsing), Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π»Π΅Π½ΠΈΠ²ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° (lazy parsing). ΠΡΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅. Π Ρ ΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π·Π°Π΄Π°Ρ: ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ AST, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠΈΡΠΊ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ΅Π½ΠΈΠ²ΡΠΉ Π°Π½Π°Π»ΠΈΠ·, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΠ° Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ΄Π΅ΡΡ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ AST ΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ Π»ΠΈΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΡΠΎ Π½Π΅ Π½ΠΎΠ²Π°Ρ. ΠΠ°ΠΆΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π²ΡΠΎΠ΄Π΅ IE9 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Ρ ΠΎΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ»ΠΈ Π΄Π°Π»Π΅ΠΊΠΎ Π²ΠΏΠ΅ΡΡΠ΄.
Π Π°Π·Π±Π΅ΡΡΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ ΡΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ². ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ JS-ΠΊΠΎΠ΄:
ΠΠ°ΠΊ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΊΠΎΠ΄ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΏΠ°ΡΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ AST. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠ°ΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ΄, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ (Π½Π° ΡΡΠ½ΠΊΡΠΈΡ foo ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ):
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΏΠ°ΡΡΠ΅Ρ ΡΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡ Π΅ΠΌΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ
Π Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ, Π½ΠΎ Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ β Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΠΈΠ· Π»ΡΠ³ΠΊΠΈΡ . ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π°, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΏΡΠΈ ΠΏΡΠΈΠ½ΡΡΠΈΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ Π½Π΅ΠΊΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π½ΡΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ ΡΠΈΠΊΠ»Ρ, ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π ΡΠ΅Π»ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΠ°ΡΡΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΡ, ΡΡΠΎ Π΅ΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π΅ΡΡΠΌΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² JavaScript:
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ JS-ΠΏΠ°ΡΡΠ΅ΡΠΎΠ² ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΡΠ΅ΡΠ½, ΠΎΠ½ Π΄Π»Ρ Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠΎΠ΄, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
Π ΡΡΠΎ Π΅ΡΠ»ΠΈ Π±Ρ ΠΏΠ°ΡΡΠ΅ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π»Π΅Π½ΠΈΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·? ΠΡΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅ ΡΠ°ΠΌΠ°Ρ Ρ ΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Ρ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅, Π΅ΡΠ»ΠΈ Π½Π΅ΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π½Π°Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅, ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠΌΡΡ Ρ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°ΡΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡ ΠΎΠ΄ Π»Π΅Π½ΠΈΠ²ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΡΡ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡΡ Π·Π° ΠΏΠΎΠ»Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅. ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 50% Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΡΡΠ΅Ρ ΡΡΠ°Π·Ρ ΠΏΡΠΈΡΡΡΠΏΠ°Π΅Ρ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΡΠ°Π·Π±ΠΎΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΡΡΡΡΠΎΠΌ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π½Π΅Π΄ΡΠ°Ρ ΠΏΠ°ΡΡΠ΅ΡΠΎΠ², ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠΌ ΠΏΠΎΠΌΠΎΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΡΡ Π² Π½ΡΠΆΠ½ΠΎΠ΅ Π½Π°ΠΌ Π²ΡΠ΅ΠΌΡ. Π’ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΡΠ΅ΡΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠΎΠ². ΠΠ½ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠΊΠΎΠ±ΠΊΠΈ. Π’Π°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΏΠ°ΡΡΠ΅ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Π΄ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π±Π΅Π·ΠΎΡΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠ»ΠΈ ΠΏΠ°ΡΡΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ ΡΠΊΠΎΠ±ΠΊΡ, ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ½ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡ ΠΊ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Ρ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠΎΡΡ ΠΏΠ°ΡΡΠ΅ΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΡΡΠΎΡ ΠΏΡΠΈΡΠΌ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ foo :
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π΅Ρ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π±ΡΠ°ΡΠ·Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π»ΠΈΡΡ Π΅Ρ Π»Π΅Π½ΠΈΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°ΠΌ ΠΎΡΠ΅Π½Ρ ΡΠΊΠΎΡΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠ±Π΅Π³Π½ΡΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΠΈΡΠΌΡ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
ΠΠΎΡΠ»Π΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΡΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»Π΅Π½ΠΈΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π΄Π΅ΡΠ°Π»ΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ Π½Π°Π΄ΠΎ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠΊΠΎΠ±ΠΊΠΈ:
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΡΡΠ½ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΠΎ, Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠ°ΡΡΠ΅Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π»Π΅Π½ΠΈΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·, Π° Π² ΠΊΠ°ΠΊΠΈΡ β ΠΏΠΎΠ»Π½ΡΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΡΠΈΠ½ΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠΉ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ, Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ°, Π½Π΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡΡ Π²Π·Π²Π°Π»ΠΈΠ²Π°ΡΡ Π½Π° ΡΠ΅Π±Ρ Π²ΡΡ ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΠ΅ΠΌ Π²ΡΡ ΡΠΎ, ΠΎ ΡΡΠΌ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠΎΠ΄, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ. Π ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡΡ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΈΠΉΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π²ΡΠΎΠ΄Π΅ Optimize.js. ΠΡ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° JS. ΠΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡ Π΅Π³ΠΎ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅, Π±ΡΠ»ΠΈ Π±Ρ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π°ΠΉΠΌΡΡΡΡ ΠΈΡ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΎΠΉ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠ°ΠΊ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌ, Π½ΠΈ ΠΎ ΡΡΠΌ ΠΎΡΠΎΠ±ΠΎ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡ, ΠΈ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°:
ΠΡΠΎΠ΄Π΅ ΠΈ ΡΡΡ Π²ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π» ΡΠ°Π½ΡΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΈΡΠΌΠΎΡΡΠ΅ΡΡΡΡ, ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΡΠΎ ΠΊΠΎΠ΅-ΡΠ΅Π³ΠΎ Π² ΡΡΠΎΠΌ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ.
ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ±ΡΠ°Π» ΡΠΊΠΎΠ±ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² Π² Π½Π°ΡΠ°Π»ΠΎ ΡΡΡΠΎΠΊΠΈ Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π½Π°ΠΊ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠ°ΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ ΡΡΡΠΎΡΠΊΡ ΠΏΡΠΎΠΏΡΡΡΠΈΡ, ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π»Π΅Π½ΠΈΠ²ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΈΠ΄ΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π»Π΅Π½ΠΈΠ²ΠΎΠ³ΠΎ. ΠΡΡ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΡ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎΠ± ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ Π²ΡΠΎΠ΄Π΅ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠ³ΠΎ Optimize.js. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Optimize.js, Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠΎ ΡΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ. ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π°. Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ΅, Π° ΠΏΠ°ΡΡΠ΅ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅, Π° ΠΊΠ°ΠΊΠΈΠ΅ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΡ Π»Π΅Π½ΠΈΠ²ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° JS-ΠΊΠΎΠ΄Π° ΠΊ ΡΠ°Π±ΠΎΡΠ΅ β Π΄Π΅Π»ΠΎ, ΡΡΠ΅Π±ΡΡΡΠ΅Π΅ Π½Π΅ΠΌΠ°Π»ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΡ ΡΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅? Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΏΡΠΈΠ½ΡΠΆΠ΄Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π²ΠΎΠΏΡΠΎΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΠ΅ JS-Π΄Π²ΠΈΠΆΠΊΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΎΡ Π·Π°Π΄Π°Ρ ΠΏΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΡΠ΅Π»ΠΎΠΌ, ΠΈΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Ρ Π½Π°Ρ Π±ΡΠ» Π½Π΅ΠΊΠΈΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠΌΠ΅ΡΡΠΈΠΉ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ. ΠΡΠΎ Π΄Π°ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅. Π Ρ ΠΎΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΎΠ±Π»Π°Π·Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π½Π΅ Π²ΡΡ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠ΄Π° ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ , Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²ΠΎΠ·ΡΠ°ΡΡΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π² Π΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, JS-Π΄Π²ΠΈΠΆΠΊΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ Π² ΡΠΆΠ΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π²ΡΠ΅ΠΌΡΡ ΡΡΡΠ»Π΅, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² V8 ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°Π΄ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ Π΄Π²ΠΈΠΆΠΊΠ°, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΌΠΈ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠΈΠ½Π³Π°. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠΆΠ΅ Π½Π΅ ΡΡΠΎΠ»Ρ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ.
Π‘ΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:
ΠΡΠΎΠ³ΠΈ
ΠΠ²ΡΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π² Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ SessionStack, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°Ρ , Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΡΠΈΡΠΌΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΡΠ°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΡΡΡΠ΅Π΅ Π·Π°Π³ΡΡΠΆΠ°Π»ΡΡ ΠΈ Π³ΠΎΡΠΎΠ²ΠΈΠ»ΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅. Π§Π΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ β ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΠ½Π΅Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠΎΠΆΠ°Π»ΡΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ β ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ΅ΠΌΡΡΡΡ ΡΠ΅ΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈ ΡΠΎ, ΠΎ ΡΡΠΌ ΡΠ»Π° ΡΠ΅ΡΡ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅, Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Π²Π°ΡΠΈ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΡ Ρ ΡΡΡΡΠΎΠΌ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠ°Π·Π±ΠΎΡΠ° ΠΈΡ JavaScript-ΠΊΠΎΠ΄Π°?