ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ javascript
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ JavaScript, ΡΠ°ΡΡΡ 1: ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ°, ΡΡΠ°Π½Π΄Π°ΡΡΡ
ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΌΡ ΠΏΡΠΎΠ²Π΅Π»ΠΈ ΠΎΠΏΡΠΎΡ, ΠΏΠΎΡΠ²ΡΡΡΠ½Π½ΡΠΉ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ JavaScript. ΠΠ°ΠΊ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΠΎΠΊΠΎΠ»ΠΎ 90% ΠΏΡΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π²ΡΠΈΡ ΠΎΡΠ½Π΅ΡΠ»ΠΈΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ΄Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°.
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΏΠΎ Π·Π°ΠΌΡΡΠ»Ρ Π°Π²ΡΠΎΡΠ°, ΡΠ°ΡΡΡΠΈΡΠ°Π½ΠΎ Π½Π° ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌ JavaScript ΠΈ Ρ ΠΎΡΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ Π² ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ ΡΠ·ΡΠΊΠ΅ ΡΡΠΎ-ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅. ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°, Π²ΠΊΠ»ΡΡΠΈΡΡ Π² Π½Π΅Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΎ JS, ΠΈ Π½Π°ΡΠ°ΡΡ Π΅Π³ΠΎ Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Β«Hello, world!Β».
Hello, world!
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°ΡΡ Β«Hello, world!Β», ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°. ΠΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΊΡΠ΄Π°-Π»ΠΈΠ±ΠΎ ΡΡΠ°Π·Ρ Β«Hello, world!Β», ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ, ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΡΠ·ΡΠΊΠ°.
JavaScript β ΡΡΠΎ ΡΠ·ΡΠΊ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ . Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΠΈ ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Node.js. ΠΡΠ»ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²Ρ Π½Π΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π½ΠΈ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π° JS ΠΈ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π½Π° Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Ρ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π² ΡΡΠΈΡΠ°Π½Π½ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ ΠΎΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ JavaScript-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΎΡ ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅, Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΈΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΊΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π° Π½Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ .
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° β Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠ³ΠΎ Β«Hello, world!Β» Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΎΠΊΠ½Π° Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΡΠ°ΠΊ:
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΎΠΊΠ½Π΅
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° ΡΠ΅ΠΏΠ΅ΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π°. ΠΠ΅Π½ΡΡΡ Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΠΌΠ΅Π½Ρ Ρ ΡΡΠ΅ΠΌΡ ΡΠΎΡΠΊΠ°ΠΌΠΈ Π² Π΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΈ Π²ΡΠ±ΠΈΡΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Π΄Π»Ρ Π·Π°ΠΊΡΡΡΠΈΡ ΡΡΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΠΈΠΌΠ΅ΡΡΡΡ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ . ΠΠΎΠ½ΡΠΎΠ»Ρ Ρ ΠΎΡΠΎΡΠ° ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ, Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ.
ΠΠ΅ΡΠΊΡΠΎΠΏΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° JavaScript. Π§Π°ΡΡΡ 1
ΠΠΈ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ΅ΠΊΡΠ΅Ρ, ΡΡΠΎ Π² Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ JavaScript ΡΡΠ°Π» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π΄Π°Π»Π΅ΠΊΠΈΠ΅ 90Π΅ Π³ΠΎΠ΄Ρ, Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π²Π΅Π± ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΊΡΠΎ Π±Ρ ΠΌΠΎΠ³ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΎΠ½ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΡΡΠΎΠ»Ρ Π½Π΅Π±ΡΠ²Π°Π»ΡΡ Π²ΡΡΠΎΡ. ΠΠ΅Π΄Ρ ΡΠ΅ΠΉΡΠ°Ρ Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. Π₯ΠΎΡΠΈΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΉΡ: ΠΈ Π±ΡΠΊΡΠ½Π΄ ΠΈ ΡΡΠΎΠ½ΡΡΠ½Π΄ Π½Π° JavaScript? ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°! Π₯ΠΎΡΠΈΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° JavaScript? Π½Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ β ΠΈ ΡΡΡ Π²Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΠ΄Π΅Ρ JavaScript.
ΠΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΌΠΈΠ½ΡΡΡ Π² ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ JavaScript Π²Π΅Π·Π΄Π΅, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ°Π·ΠΌΡΡΠ»ΠΈΡΡ, ΡΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΈΠ» ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ, ΠΈΠ·ΡΡΠΈΠ² Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΈ ΡΠ·ΡΠΊ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ . Π Π°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅? Π₯ΠΌβ¦ Π’ΠΎΡΠ½ΠΎ β ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ β ΡΠ΅ΠΏΠ΅ΡΡ JS ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ΅Π±Π΅ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Windows, Linux, Mac, ΠΊΠ°ΠΊ ΡΠΏΡΠΎΡΠΈΡΠ΅ Π²Ρ? ΠΡΠ²Π΅Ρ ΠΏΡΠΎΡΡ: Π²ΡΡΡΠ΅ΡΠ°ΠΉΡΠ΅ β NW.js.
ΠΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ Π±ΡΠΊΠ²Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ β Node.js + Webkit, Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ Π²Π°ΠΌ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ, ΡΠΎ ΡΠΊΠΎΡΠΎ Π²Ρ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅ ΠΎ ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ.
Node.js β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Π΄Π²ΠΈΠΆΠΊΠ΅ V8, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅Ρ Π½Π°Ρ ΡΠΊΡΠΈΠΏΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ°Π½Π½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π² 2009 Π³ΠΎΠ΄Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΡΠΊΡΠ½Π΄ΠΎΠΌ ΡΠ°ΠΉΡΠΎΠ².
WebKit β ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Apple. ΠΠΏΠ΅ΡΠ²ΡΠ΅ Π±ΡΠ» Π°Π½ΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ Π² ΡΠΎΡΡΠ°Π²Π΅ Safari Π² 2003 Π³ΠΎΠ΄Ρ
ΠΡΠ°ΠΊ, ΠΊΠΎΠ΄Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π½Π° JS Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ°ΠΊ Node.js ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠ°ΠΊ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΠΉ API (ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ WebKit)
ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
ΠΡΠ΅ ΡΡΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ, Π½ΠΎ Ρ ΡΠ΅Π³ΠΎ ΠΆΠ΅ Π½Π°ΡΠ°ΡΡ? ΠΠ° github ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ ΡΠΊΠ°ΡΠ°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π’Π°ΠΊ ΠΆΠ΅ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΡΡΠΌΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ node.js.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΠ ΡΠΊΠ°ΡΠ°Π½ΠΎ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, Π²Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π»ΡΠ±ΠΈΠΌΠΎΠΌ JS (ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΡΠ°ΠΉΡΠ΅ Π΄Π°Π»Π΅Π΅) ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π²ΡΠ΅ Π² ΠΎΠ΄Π½Ρ ΠΏΠ°ΠΏΠΊΡ. ΠΠΎΠ»Π΄Π΅Π»Π° ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΠΎΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΈ Π΄ΠΎΠ»Π³ΠΎΠ΅ β ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ nw-builder. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π΅ ΡΠΎΡΡΠ°Π²ΠΈΡ ΡΡΡΠ΄Π°, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ node.js. ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π² ΡΠΎΡΡΠ°Π² node.js Π²Ρ ΠΎΠ΄ΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² npm, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²ΠΈΡΡ, ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΡ —save-dev, Π΄Π»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ -g. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π½Π°Ρ ΡΠ±ΠΎΡΡΠΈΠΊ Π΄Π»Ρ NW.js Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ±ΡΠ°ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΠΏΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ):
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: win32, win64, osx32, osx64, linux32, linux64.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅Ρ Π½ΡΠΆΠ΄Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π΅ΡΡΡ ΠΈ ΠΎΠ½ΠΎ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ nw.exe ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΏΠΎΠ΄ Windows, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ drag-n-drop ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΈΡΡ ΠΏΠ°ΠΏΠΊΡ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° JS (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ°ΠΏΠΊΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ) Π² nw.exe.
Hello, world!
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΠ°ΡΡ Π΅Π³ΠΎ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ», Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ. ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Hello, world.
ΠΠ»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ JavaScript, ΡΠΎΠ»ΡΠΊΠΎ HTML. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΠΏΠΊΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ HelloWorld. ΠΠΎΠΌΠ΅ΡΡΠΈΠΌ Π²Π½ΡΡΡΡ ΡΠ°ΠΉΠ» index.html ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΎΠΉ:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ NW.js Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ package.json. ΠΠ· Π½Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ Π±ΡΠ°ΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡ HelloWorld. ΠΡΠ°ΠΊ:
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ½ΡΡΠ½ΠΎ Π±Π΅Π· ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠΉ (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ main ΠΈ name). Π main Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΉΠ» Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘Π΅ΠΊΡΠΈΡ window Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΊΠ½Π° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π·Π°Π΄Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π° 500×200).
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΊΠ°ΠΊ (Π·Π° ΠΏΠΎΠ»Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΎΠΏΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ):
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ, Π½ΠΎ Π² Π½Π΅ΠΌ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ div ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ, Π° ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π±ΠΎΠ³Π°ΡΠ°Ρ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° ΠΈ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°? ΠΠ° ΠΏΠΎΠΌΠΎΡΡ ΠΊ Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° toolbar, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π² false. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ toolbar Π² true. ΠΡΠΎΠ΄Π΅Π»Π°Π² ΡΡΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ:
ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΏΡΠ°Π²ΠΎΠΌ ΡΠ³Π»Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°:
Π Π°Π±ΠΎΡΠ° Ρ Π½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΠΌΠΈ
NW.js ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΠΌΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΠ΅Π½Ρ. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π°ΡΠΈΠ²Π½ΡΠΌ UI ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΠΌΠΈ Π² nw.js Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ nw.gui, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ±ΡΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΠ²:
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π»ΡΠ±ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ JS, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊ:
ΠΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π΅Π³ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ, Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² menu ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ insert, Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ MenuItem ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΠΊΡΠ΄Π° Π΅Π³ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ (ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ 0).
ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ items:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ:
Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π»ΡΠ±Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΡΠ°Ρ Ρ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΠΌΠΈ, ΠΎΠ½ΠΈ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ ΠΎΡ EventEmitter, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊ:
ΠΠ΅Π½Ρ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅. ΠΠ»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ popup, Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠ΅Π½Ρ.
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΡ Hello, world:
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π΄Π»Ρ body. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ, Π½ΠΎ Π·Π° Π²ΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ»Π°ΡΠΈΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΆΠ΅ΡΡΠ²ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠΊΠΎΡΠΎΡΡΡΡ, ΡΠ°ΠΊ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ (ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ, Π±ΠΎΠ»Π΅Π΅ 50 ΠΠ±). Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° github.
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ°ΡΡΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ JavaScript Ρ ΠΏΠΎΠΌΠΎΡΡΡ Node.js
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΈ Π·Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ JavaScript, ΡΠΎ Ρ Π²Π°Ρ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: Π° ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠ΄?
ΠΡΠΎΡΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΡΠΌΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² ΠΏΠ°ΡΡ ΠΊΠ»ΠΈΠΊΠΎΠ². ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π½Π΅ Ρ Π²Π°ΡΠΈΡ, Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°ΡΠ° β ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. ΠΠ΄Π΅ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Node.js.
Node.js β ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript-ΠΊΠΎΠ΄Π°. ΠΠ½Π° ΡΠΎΠ·Π΄Π°Π½Π° Π½Π° Π±Π°Π·Π΅ Π΄Π²ΠΈΠΆΠΊΠ° V8, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΡΡΡΠΈΡΡΡ Π² ΡΠ΅ΡΠ΄ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Chrome. ΠΡΠ° ΡΡΠ΅Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ JavaScript-ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π° Π½Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
ΠΡΠΎΠΌΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ JavaScript, Node.js Π΄Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΡΡ, Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ, ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ. Π ΠΏΡΠΈΠ΄Π°ΡΡ ΠΊ ΡΡΠ΅Π΄Π΅ ΠΈΠ΄ΡΡ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ npm, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ.
Π Π°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅ JavaScript ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ
Π‘Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΡΡΠ΅Π΄Ρ Ρ ΡΠ°ΠΉΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΡΡΠΎ Π²ΡΡ ΠΏΡΠΎΡΠ»ΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
ΠΠ²Π΅Π΄ΡΠΌ ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ:
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ°ΡΡ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ Π²ΡΠ²Π΅Π΄Π΅ΠΌ Hello world! :
Hello world!
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΠΊΠ» Π²ΡΠ²ΠΎΠ΄ΠΎΠ². ΠΠ°ΠΊ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΎΡΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° Π½Π΅Π³ΠΎ?
Π¦ΠΈΠΊΠ» Π²ΡΠ²ΠΎΠ΄ΠΎΠ².
Node.js ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΈ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Ρ Π»Π΅ΡΠ΅Π½ΠΊΡ. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΎΠ½ ΡΡΡ ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΡΠΊΡΠΈΠΏΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΠΌ Π±ΡΠΊΠ²Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅:
Π£ΠΏΡ, ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΡ Π²ΠΎΡ, Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΅ΡΡΡ. ΠΠΎ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ-ΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠ° ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π±ΠΈΡΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π»Π΅ΠΆΠ°ΡΠΈΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ .
Π£ΡΠ»ΠΎΠΆΠ½ΡΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π΄Ρ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½Π° ΠΆΡΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ ΡΡΠ΄Π° Π²Π°Ρ Π³ΠΎΡΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ index.js β ΡΠ°ΠΊ ΠΏΡΠΈΠ½ΡΡΠΎ. ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ ΡΠΊΡΠΈΠΏΡΠ° Π½Π΅Ρ, ΡΠΎ Π²ΠΎΠ·ΡΠΌΠΈΡΠ΅ ΡΠΈΠΊΠ» Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ.
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± β ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», Π½Π°Π·Π²Π°ΡΡ Π΅Π³ΠΎ package.json ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»Ρ. Π€Π°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π΅Π³ΠΎ ΠΈΠΌΡ, Π²Π΅ΡΡΠΈΡ, Π°Π²ΡΠΎΡΡ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ β Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΏΡΠΎΡΡΠΈΠΌ ΡΠ΅Π±Π΅ ΠΆΠΈΠ·Π½Ρ.
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π² ΡΠ°ΠΉΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ.
Π§ΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ npm start Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ. Node.js Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Node.js, ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ½ΠΎΠ².
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΎΠ±ΡΠ΅ΡΠ΅ Node.js, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Windows. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΡΠ°ΡΡΠ΅ ΠΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Node.js Π² Windows ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows Π΄Π»Ρ Linux.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Node.js Π² Visual Studio Code
ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Visual Studio Code, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Windows ΠΈΠ»ΠΈ WSL.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» JavaScript Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ «app.js» ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ «msg» Π²: echo var msg > app.js
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΠΎΡΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ («Hello World»), Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ, Π²Π²Π΅Π΄Ρ Π΅Π³ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ «app.js»:
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΉΠ»Π° «app.js» Ρ Node.js. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π² VS Code, Π²ΡΠ±ΡΠ°Π² ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ > Π’Π΅ΡΠΌΠΈΠ½Π°Π» (ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Ctrl+`, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°ΠΏΠΎΡΡΡΠΎΡΠ°). ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠ΅Π΅ΡΡ ΠΌΠ΅Π½Ρ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΡΠ±ΡΠ°ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Node.js Ρ ΠΏΠΎΠΌΠΎΡΡΡ Express
Express β ΡΡΠΎ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ, Π³ΠΈΠ±ΠΊΠ°Ρ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Node.js, ΡΠΏΡΠΎΡΠ°ΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ GET, PUT, POST ΠΈ DELETE. Express ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Express.js, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ (ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°, Powershell ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ).
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°: mkdir ExpressProjects ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³: cd ExpressProjects
Π€Π°ΠΉΠ»Ρ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Express, ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ. Π ΠΎΠΊΠ½Π΅ ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Ρ VS Code (Ctrl+Shift+E Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°), Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Express Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ HelloWorld Express (ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ package.json ). Π VS Code ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», Π²ΡΠ±ΡΠ°Π² ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ > Π’Π΅ΡΠΌΠΈΠ½Π°Π» (ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Ctrl+`, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°ΠΏΠΎΡΡΡΠΎΡΠ°), ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° «HelloWorld». Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Express Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² HTTP, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΠ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ API. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Express Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π²Π²Π΅Π΄Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΠΊΡΡΠ² Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ: localhost:3000
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ HelloWorld Express Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΎΡΠΊΡΡΠ² ΠΏΠ°ΠΏΠΊΡ «views» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π²ΡΠ±ΡΠ°Π² ΡΠ°ΠΉΠ» «index.pug». ΠΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ h1= title Π½Π° h1= «Hello World!» ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ (Ctrl+S). ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² URL-Π°Π΄ΡΠ΅Ρ localhost:3000 Π² Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Express, Π² ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π²Π²Π΅Π΄ΠΈΡΠ΅: Ctrl+C
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ Node.js
Node.js Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Ρ, Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ npm. ΠΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ.
Π‘ΡΠ΅Π΄ΡΡΠ²ΠΎ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
---|---|
GM, sharp | ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΡΠΆΠ°ΡΠΈΠ΅ ΠΈ Ρ. Π΄. Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠΎΠ΄Π΅ JavaScript |
PDFKit | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ PDF |
validator.js | ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΡΠΎΠΊ |
imagemin, UglifyJS2 | ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ |
spritesmith | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π»ΠΈΡΡΠ° Sprite |
winston | ΠΠ΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° |
commander.js | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ |
Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΠ‘.
ΠΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ Π·Π°ΠΏΡΡΠΊΡ JavaScript: ΠΊΠΎΠ½ΡΠΎΠ»Ρ, Π±ΡΠΊΠΌΠ°ΡΠΊΠ»Π΅ΡΡ ΠΈ ΠΏΡΠΎΡΠ΅Π΅ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ
ΠΠ°ΠΏΡΡΠΊΠ°ΡΡ JavaScript (ΠΈΠ»ΠΈ JS) ΠΊΠΎΠ΄ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ β ΠΎΠ±ΡΡΠ½ΡΠΉ Π½Π°Π²ΡΠΊ.
ΠΡΠ»ΠΈ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ Ρ ΠΎΡΠ΅Π»ΠΈ Π°ΠΏΡΠΎΠ±ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ JS-ΠΊΠΎΠ΄, Π½ΠΎ Π±ΠΎΡΠ»ΠΈΡΡ, ΡΡΠΎΡ ΠΏΠΎΡΡ Π΄Π»Ρ Π²Π°Ρ.
Π¦Π΅Π»Ρ ΠΏΠΎΡΡΠ° Π΄Π»Ρ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ β ΠΌΠΎΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠ΄.
Π¦Π΅Π»Ρ ΠΌΠΎΡ β Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅, ΡΡΠΎΠ±Ρ Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅ Π΄Π°Π²Π°ΡΡ Π½Π° Π½Π΅Π³ΠΎ ΡΡΡΠ»ΠΊΡ + Π΄Π°Π²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° Π΄ΡΡΠ·ΡΡΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ Π±ΡΠΊΠΌΠ°ΡΠΊΠ»Π΅Ρ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈ-ΡΠΎΡΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΡΠ·ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΠ°ΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠ½ΠΊΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ. ΠΠ΅ΡΠ΅ΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ½ΠΊΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ!
ΠΠΠΠΠΠ’Π: Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡΠ΅ JS-ΠΊΠΎΠ΄ ΠΈΠ· ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΊΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ!
Β§ I. ΠΠΠ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ JavaScript ΠΊΠΎΠ΄?
I.1. Π§Π΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ ctrl+shfit+K ΠΈΠ»ΠΈ ctrl+shift+L.
ΠΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅ enter, ΠΎΠ½ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
I.2. Π§Π΅ΡΠ΅Π· Π°Π΄ΡΠ΅ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
ΠΡΠΎ ΡΡΡΠΎΠΊΠ°, Π³Π΄Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π°Π΄ΡΠ΅Ρ ΡΠ°ΠΉΡΠ°.
Π‘ΡΠΈΡΠ°Π΅ΡΠ΅ Π°Π΄ΡΠ΅Ρ ΡΠ°ΠΉΡΠ°, Π²ΠΌΠ΅ΡΡΠΎ Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅ enter, ΠΎΠ½ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
I.3. Π§Π΅ΡΠ΅Π· bookmarklet, ΠΈΠ»ΠΈ Π±ΡΠΊΠΌΠ°ΡΠΊΠ»Π΅Ρ, ΠΈΠ»ΠΈ Β«Π·Π°ΠΊΠ»Π°Π΄ΡΡΠΊΡΒ».
ΠΡΠΎ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΠΉΡΠ° ΡΡΠΎΠΈΡ JS-ΠΊΠΎΠ΄.
Π‘ΠΎΠ·Π΄Π°ΡΡΠ΅ Π»ΡΠ±ΡΡ Π½ΠΎΠ²ΡΡ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡ. ΠΠ°ΡΠ΅ΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π΅Ρ: Π²ΠΌΠ΅ΡΡΠΎ Π°Π΄ΡΠ΅ΡΠ° ΡΠ°ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ, Π²ΡΡΠ°Π²ΡΡΠ΅ JS-ΠΊΠΎΠ΄ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅.
ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅ Π½Π° ΡΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ, ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ JS-ΠΊΠΎΠ΄.
ΠΠ ΠΠΠΠ§ΠΠΠΠ: ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΄ΠΎΠ±Π½Π΅ΠΉΡΠΈΡ Β«ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π·ΠΎΠ²ΡΡ Β» ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π·Π°ΠΏΡΡΠΊΠ°ΡΡ JS-ΠΊΠΎΠ΄, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΠΌΠ°ΡΡΡΠΎΠ½Π°!
I.4. Π§Π΅ΡΠ΅Π· ΠΎΠ±ΡΡΠ½ΡΠΉ Π±Π»ΠΎΠΊΠ½ΠΎΡ, ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΠΉ ΠΊΠ°ΠΊ HTML.
ΠΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊΠ½ΠΎΡ (notepad).
ΠΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΡΠ΄Π° Π½ΡΠΆΠ½ΡΠΉ HTML Ρ JS.
ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅ Β«Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊΒ», ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΌΠ΅Π½Ρ. Π’ΠΈΠΏ ΡΠ°ΠΉΠ»Π° β ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Β«Π’Π΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ (*.txt)Β» Π½Π° Β«ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ (*.*)Β». ΠΠΌΡ ΡΠ°ΠΉΠ»Π° β ΠΌΠΎΠΉΠΊΠΎΠ΄.html. ΠΠ³ΠΎ ΠΈ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΠ ΠΠΠΠ§ΠΠΠΠ: ΡΠ΄ΠΎΠ±Π½ΡΠΉ Β«ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π·ΠΎΠ²ΡΠΉΒ» ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΡΡΠΊΠ°ΡΡ JS-ΠΊΠΎΠ΄ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ (Π±Π΅Π· ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°).
Π‘ΠΠ ΠΠΠΠ§ΠΠ: HTML β ΡΡΠΎ ΡΠ·ΡΠΊ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ.
ΠΡΠ±Π°Ρ ΠΎΡΠΊΡΡΡΠ°Ρ web-ΡΡΡΠ°Π½ΠΈΡΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ β HTML.
I.5. Π§Π΅ΡΠ΅Π· Π±Π»ΠΎΠΊΠ½ΠΎΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ (Π²Π½ΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² web-ΡΡΡΠ°Π½ΠΈΡΡ).
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° (ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π·ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° [I.4].
ΠΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π±Π»ΠΎΠΊΠ½ΠΎΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ:
ΠΠ°ΡΠ΅ΠΌ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ (HTML-ΠΊΠΎΠ΄): ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ (ctrl+shift+K ΠΈΠ»ΠΈ ctrl+shift+L), ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ Π² Elements.
ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ HTML-ΠΊΠΎΠ΄, Π²ΡΡΠ°Π²Π»ΡΡ ΡΡΠ΄Π° Π½ΡΠΆΠ½ΡΠΉ HTML Ρ JS.
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π΅Ρ.
ΠΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΅Ρ ΠΈ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΠ ΠΠΠΠ§ΠΠΠΠ: ΠΊΡΡΠ°ΡΠΈ, ΡΠ°ΠΌ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊΠ½ΠΎΡ ΡΠ΄ΠΎΠ±Π΅Π½ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΎΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ (ctrl+s).
I.6. Π§Π΅ΡΠ΅Π· ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ/ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ.
ΠΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ HTML ΠΈ JavaScript Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅ Β«SaveΒ» Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ (ΠΈΠ»ΠΈ Β«RunΒ» Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΎΡΠΌΠΎΡΡΠ°).
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ Π² ΠΊΠΎΠ½Π΅Ρ Π°Π΄ΡΠ΅ΡΠ° Β«/showΒ», Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½Π° ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°:
ΠΠ ΠΠΠΠ§ΠΠΠΠ: ΡΠ΄ΠΎΠ±Π½Π΅ΠΉΡΠΈΠΉ Β«ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π·ΠΎΠ²ΡΠΉΒ» ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΡΡΠΊΠ°ΡΡ JS-ΠΊΠΎΠ΄ (ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ).
I.7. Π§Π΅ΡΠ΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ (addon) Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
ΠΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, ΡΠΎΡ ΡΠ°Π½ΡΠΉΡΠ΅. ΠΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ ΠΠΠΠ§ΠΠΠΠ: ΡΠ΄ΠΎΠ±Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ JS-ΠΊΠΎΠ΄ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ°ΠΉΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ @match).
Β§ II. ΠΠ‘ΠΠΠΠΠ«Π ΠΠΠΠ« Π·Π°ΠΏΡΡΠΊΠ° JavaScrpt-ΠΊΠΎΠ΄Π°?
ΠΠ΄Π΅ΡΡ ΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄ΡΠΈ ΠΎ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠ΅ΠΌ ΠΎΠΊΠΎΡΠΊΠΎ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ.
Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ΄ (Π½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅, ΠΎΡΡΠ°Π½Π΅ΡΡΡ).
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: [I.1] ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
II.2. ΠΡΠΎΡΠΎΠΊΠΎΠ»: Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ (ΠΈΠ»ΠΈ IIFE) ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: [I.2] Π°Π΄ΡΠ΅ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ°;
II.3. Userscript Π΄Π»Ρ Tampermonkey / Greasemonkey.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: [I.7] ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π°Π΄Π΄ΠΎΠ½Ρ Tampermonkey / Greasemonkey.
II.5. ΠΡΠΎΡΠΎΠΊΠΎΠ»: Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠ°Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ.
II.5.1. ΠΡΠΎΡΠΎΠΊΠΎΠ»: Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠ°Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ: ΠΊΠΎΠ΄ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅.
var scr1 = document.createElement(‘script’);
scr1.setAttribute(‘type’,’text/javascript’);
scr1.textContent=»var func1=function()
document.documentElement.getElementsByTagName(‘*’)[0].appendChild(scr1);
var btnDiv1 = document.createElement(‘div’);
btnDiv1.id = ‘btnDivId1’;
btnDiv1.style.position = ‘relative’;
btnDiv1.style.zIndex = 99999;
var btn1 = document.createElement(‘button’);
btn1.innerHTML = ‘Click’;
btn1.id = ‘btnId1’;
btn1.setAttribute(«onclick», «javascript:func1();»);
II.5.2. ΠΡΠΎΡΠΎΠΊΠΎΠ»: Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠ°Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ: ΠΊΠΎΠ΄ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
var scr1 = document.createElement(‘script’);
scr1.setAttribute(‘type’,’text/javascript’);
scr1.setAttribute(‘src’,’http://codepad.org/2NJ2YB3V/raw.txt’);
document.documentElement.getElementsByTagName(‘*’)[0].appendChild(scr1);
var btnDiv1 = document.createElement(‘div’);
btnDiv1.id = ‘btnDivId1’;
btnDiv1.style.position = ‘relative’;
btnDiv1.style.zIndex = 99999;
var btn1 = document.createElement(‘button’);
btn1.innerHTML = ‘Click’;
btn1.id = ‘btnId1’;
btn1.setAttribute(«onclick», «javascript:func1();»);
Β§ III. ΠΠ‘ΠΠΠΠΠ«Π Π’ΠΠΠ« Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ Javascript-ΠΊΠΎΠ΄ΠΎΠ²?
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΠΈΠΏΠΎΠ² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈ.
Π°) Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΡΡΠ°Π·Ρ;
Π±) Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ;
Π²) Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅;
Π³) Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΊΠ°ΠΆΠ΄ΡΠ΅ N ΡΠ΅ΠΊΡΠ½Π΄ β ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ!
ΠΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΠΈ Π²ΠΈΠ΄Π΅Π»ΠΈ.
Π§Π΅ΡΠ²ΡΡΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ΄Π΅Π»Π°Π² ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ. Π, Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π² google. ΠΠ»ΠΈ Π·Π°Π΄Π°Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡΡ Π½Π° ΠΏΡΠΎΡΠΈΠ»ΡΠ½ΡΡ ΡΠ°ΠΉΡΠ°Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° stackoverflow ΠΈΠ»ΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ°ΡΠ°Ρ .
ΠΠ°Π΄Π°Π½ΠΈΠ΅-1: ΡΡΠΎΠ±Ρ Π·Π°ΠΊΡΠ΅ΠΏΠΈΡΡ Π·Π½Π°Π½ΠΈΡ, ΡΠΎΠ²Π΅Ρ β ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Β«ΠΏΠΎΡΡΠΏΠ°ΡΡΒ» ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π²ΡΡΠ΅ ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ°Π΄Π°Π½ΠΈΠ΅-2: ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΠΠΠΠ«Π ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 3 ΡΠ΅ΠΊΡΠ½Π΄Ρ.
ΠΡΠ»ΠΈ ΠΎΠ±ΠΎΠ±ΡΠΈΡΡ, ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΡΡΠΊΠ΅
ΠΠ°ΠΊ Π²Ρ ΠΏΠΎΠ½ΡΠ»ΠΈ, [II.1] ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π½. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° / ΠΈΠ½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Β«ΠΌΠ°ΡΠΊΠ½ΠΈΡΠ΅Β» Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, Π½ΡΠΆΠ½Ρ Π»ΠΈ Β«ΡΠΏΠΎΠΉΠ»Π΅ΡΡΒ» / ΠΎΡΠ²Π΅ΡΡ (Ρ ΠΎΡΡ ΡΡΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ).
[ΠΠΎΠΏ.ΡΠΎΠ²Π΅ΡΡ, ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ³Π»ΡΠ±Π»ΡΠ½Π½ΡΠ΅ ΠΌΠ΅Π»ΠΎΡΠΈ]
IV.1. Π ΡΠΎΠΌ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ JavaScript.
ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° HTML, ΡΠ°ΠΊ ΠΈ Π±ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ (ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΊΠΎΠ΄).
ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠΎ Π΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠ°ΠΉΡ codepad.org, Ρ ΠΎΡΡ Π΅ΡΡΡ ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ [Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ ΠΌΠΎΠ³ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π½Π΅ Π΄Π°Π²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅Ρ, Π΄Π°Π²Π°Ρ ΠΎΡΠΈΠ±ΠΊΡ Β«CORSΒ»; ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠΈΡΠ΅].
Π’Π°ΠΌ Π²ΡΡΠ°Π²Π»ΡΠ»ΡΡ ΠΊΠΎΠ΄, Π²ΡΠ±ΠΈΡΠ°Π»ΡΡ Β«Plain TextΒ», Π½Π°ΠΆΠΈΠΌΠ°Π»ΡΡ Β«SubmitΒ». ΠΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π»ΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΡΠ»ΠΊΠΈ Β«Raw CodeΒ». ΠΠ½-ΡΠΎ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ Π² [II.4.2], [II.4.4], [II.5.2]).
ΠΠ° ΡΡΠΎΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅Π΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ Π·Π°ΠΏΡΡΠΊΡ JavaScript ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΡ.
ΠΠΈΡΠ΅Π½Π·ΠΈΡ Π½Π° ΡΠ΅ΠΊΡΡ, ΠΊΠΎΠ΄ ΠΈ ΡΠΊΡΠΈΠ½Ρ: CC0.
UPD: ΠΠΠΠΠΠΠΠ: Π ΡΠ²ΡΠ·ΠΈ Ρ Π·Π°ΠΊΡΡΡΠΈΠ΅ΠΌ ΡΠ°ΠΉΡΠ° codepad.org ΠΏΡΠΎΡΡΠ±Π° ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ #comment_199553464
Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΉΡ codepad.org Π±ΠΎΠ»Π΅Π΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
Π ΠΊΠΎΠ΄Π΅ ΡΡΡΠ»ΠΊΡ » http://codepad.org/AXduOuGF/raw.txt » Π·Π°ΠΌΠ΅Π½ΠΈΡΡ (ΡΡΠΈΡΠ°ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠΉ) Π½Π°
Π ΠΊΠΎΠ΄Π΅ ΡΡΡΠ»ΠΊΡ » http://codepad.org/2NJ2YB3V/raw.txt » Π·Π°ΠΌΠ΅Π½ΠΈΡΡ (ΡΡΠΈΡΠ°ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠΉ) Π½Π°
Π ΠΊΠΎΠ΄Π΅ ΡΡΡΠ»ΠΊΡ » http://codepad.org/2NJ2YB3V/raw.txt » Π·Π°ΠΌΠ΅Π½ΠΈΡΡ (ΡΡΠΈΡΠ°ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠΉ) Π½Π°
Π€ΡΠ°Π·Ρ «ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠ°ΠΉΡ codepad.org » Π·Π°ΠΌΠ΅Π½ΠΈΡΡ (ΡΡΠΈΡΠ°ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠΉ) Π½Π°
«Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ ΠΌΠΎΠ³ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π½Π΅ Π΄Π°Π²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ» β
ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ»ΠΎΠ²Π° «Π½Π° ΡΡΠΎΠ²Π½Π΅ «.
ΠΠ΅ΡΡ Π°Π±Π·Π°Ρ «Π’Π°ΠΌ Π²ΡΡΠ°Π²Π»ΡΠ»ΡΡ ΠΊΠΎΠ΄, Π²ΡΠ±ΠΈΡΠ°Π»ΡΡ Β«Plain TextΒ», Π½Π°ΠΆΠΈΠΌΠ°Π»ΡΡ Β«SubmitΒ». ΠΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π»ΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΡΠ»ΠΊΠΈ Β«Raw CodeΒ». ΠΠ½-ΡΠΎ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ Π² [II.4.2], [II.4.4], [II.5.2]).» Π·Π°ΠΌΠ΅Π½ΠΈΡΡ (ΡΡΠΈΡΠ°ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ½Π½ΡΠΌ) Π½Π°
«Π’Π°ΠΌ Π²ΡΡΠ°Π²Π»ΡΠ»ΡΡ ΠΊΠΎΠ΄, Π²ΡΠ±ΠΈΡΠ°Π»ΡΡ Β«TextΒ», Π½Π°ΠΆΠΈΠΌΠ°Π»ΡΡ Β«RunΒ». ΠΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π»ΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΡΠ»ΠΊΠΈ Β«Π‘ΠΊΠ°ΡΠ°ΡΡΒ». ΠΠ½-ΡΠΎ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ Π² [II.4.2], [II.4.4], [II.5.2]).»
ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ (ΡΡΠΈΡΠ°ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠΉ) Π½Π° Π½ΠΎΠ²ΡΡ (ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΡΡΡ).
ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ (ΡΡΠΈΡΠ°ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠΉ) Π½Π° Π½ΠΎΠ²ΡΡ (ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΡΡΡ).
ΠΡΠ»ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡ Π² ΠΠΈΠ³Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², Π½ΠΎ ΡΠ°ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ°ΡΠΌΠ΅, Ρ ΠΎΡΡ ΡΠ°ΠΌ Π΅ΠΌΡ, ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΠ°ΠΌΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ / ΡΠ°Π·ΡΠΌΠ½ΠΎ Π»ΠΈ ΠΊΠ°ΠΊ-ΡΠΎ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ?
ΠΡΠ»ΠΈ Π±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Π» ΠΠ΅ΠΌΠ»Ρ
[ΠΠ΅]ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°
ΠΡΠ²Π΅Ρ Π½Π° ΠΏΠΎΡΡ Β«ΠΠ΅ΡΠ΅Π²Π΅Π» ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡΠΎΠΊΠΈ «ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ CSS» ΠΈ «ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ JavaScript»Β»
Π Π°Π· ΠΏΠΎΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΏΡΡΠ½ΠΊΠ°, ΡΠΈΡΠΊΠ½Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΡ ΠΏΡΠΎΠ΄ΠΆΠ΅ΠΊΡΠ°.
Π ΡΠ΅ΡΠΈΠ» Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΊΡΡΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΊΡΡΡΡ :
ΠΠ°Π·ΠΎΠ²ΡΠΉ HTML, (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ freecodecamp, ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡΡΡ)
Π ΠΏΠ»Π°Π½Π°Ρ
ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΊΡΡΡΡ ΠΏΠΎ ΠΏΠΈΡΠΎΠ½Ρ.
Π§ΡΠΎ ΠΈΠ· Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΠΏΠΎ ΡΠ°ΠΉΡΡ Π²ΠΈΠΆΡ ΡΠ΅ΠΉΡΠ°Ρ:
— Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π΄Π°Π΅Ρ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΡΡΡ, Ρ ΠΎΡΡ Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ°ΠΉΡ Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡ, Ρ.ΠΊ. Π½Π΅ΡΠ΄ΠΎΠ΄Π½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Ρ ΠΌΠΎΠ±ΠΈΠ»ΠΊΠΈ
— Π½Π΅ Π²Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°
— Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΡΡΡΡ (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ JS) ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎ JS Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Ρ ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ ES6 (Π»ΠΈΠ±ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ)
ΠΡΠΎΠ΅ΠΊΡ Π² ΡΠ΅Π»ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ ΡΠΊΠΎΡΠ΅Π΅ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°, Ρ.ΠΊ. Π±ΡΠ»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°Π΄Π°Ρ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π―Π Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΠ° ΠΏΡΠΈΠ±ΡΠ΄ΡΡ Ρ ΠΠ°ΠΌΠΈ Π·Π½Π°Π½ΠΈΡ
ΠΠ»Π΅ΡΠ½ΡΠ» Π·Π½Π°Π½ΠΈΡΠΌΠΈ
ΠΠ΅ΡΠ΅Π²Π΅Π» ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡΠΎΠΊΠΈ «ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ CSS» ΠΈ «ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ JavaScript»
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠΎΠΏΠΈΠΊ ΠΠ΅ΡΠ΅Π²Π΅Π» ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡΠΎΠΊΠΈ «ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ HTML» ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΡΡ ΠΏΠΈΠΊΠ°Π±ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½Π΅ΠΉ, ΡΠ΅ΠΌ Ρ ΠΎΠΆΠΈΠ΄Π°Π»), ΠΈ ΡΡΠΎ ΠΌΠ΅Π½Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π»ΠΎ Π½Π° ΡΠΊΠΎΡΠ΅ΠΉΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π΅ΡΠ΅ Π΄Π²ΡΡ ΠΊΡΡΡΠΎΠ²: ΠΠ°Π·ΠΎΠ²ΡΠΉ CSS (44 ΡΡΠΎΠΊΠ°) ΠΈ ΠΠ°Π·ΠΎΠ²ΡΠΉ JavaScript (107 ΡΡΠΎΠΊΠΎΠ²). Π Π°Π±ΠΎΡΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΡΠΈΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π», Π½ΠΎ ΠΈ ΡΠ΅Π½Π½ΠΎΡΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΡΠΈΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ (Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ, Π½ΠΎ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ» ΡΠ²ΠΎΠΈΠΌΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ).
ΠΡΡΠ°Π»ΠΎΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΊΡΡΡ ΠΏΠΎ ECMAScript 6 ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ Π³Π»Π°Π²Π½ΠΎΠΌΡ: ΠΊΡΡΡ ΠΏΠΎ React. ΠΠ»Π°Π½ΠΈΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π½Π΅Π΄Π΅Π»Π΅.
ΠΡΠ΅ΠΌ ΠΏΡΠΈΡΡΠ½ΠΎΠΉ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΡΡΠ΅Π±Ρ!