??? ????? JavaScript ? ??? ?? ????????????
JavaScript ????????? ??? ???????????????? ??????????????? ?????????? ???????????????? , ????????? ? ???????????????? ? 1995 ???? ??????? ????????????? ????????? ?????. ?????????? ?????? ?????????? ???????????????? ??? ???????? ??????? ?????????????. ??????? ??????? ????? ???? ?????????? ??????????? ?????????.
???????? ??????? ?????? ??????? ??????????? ??????????? ? ?????????? ???????????? ????????? ?? ??????????. ???????????? ?????????? ?????? ???? ??? ??????????? ????????????? ???????, ????????? ????????, ???? ???????? ????? ???????? ????? ? ?????? ???????????? ???????. ??? ??????????? ??????????????? ? ???????????? ??????? ??? ????????????? ????????? ? ????????? ?????.
??????????? ????? ???????????????? ?? ?????????? ??????????? ??????, ????????? ???????? ? ?????????? ??????. ?????????? ??????? ???????????? ? ?????????? ?????????????? ??????????????, ??????? ??????????? ??????? ?????? ??? ?????? ???????????? ???????. ???????????? ????????? ?? ???? ??? ???????? ??????? ????????????? ???????????.
??????? ???????????? ?????????? ??????? ???????????????? ? ?????? ??????? ?????. ?????? ??????????? ??????? ?????????????? ?????????? ???? ??? ??????????????? ????????? ??????????????? ??????????. ???????? ?????????? ???????????? ????????? ? ??????????? ???????? ????????? ??????? ????? ??????????.
?????? ???????? ????? ???????????: ????????????, ????????? ? ?????? ? ????????????
?????? ????????? ????????? ?????????? ??????????????? ???????? ?????? ???? ??????. ??????????? ????? ?????? ?????????? ?????, ????? ?????? ??? ?????? ??? ??????? ???????? ????. ????????????? ??????????? ????????????? ??? ?????? ?? ????? ?????? ?????????.
?????????????????????????? ???????????? ?????????????? ???? ?????????? ?? ???????????? ???????????????????????? ??????. ?????? ?????? ????? ????? ???????? – ?????? ??????, ???????? ???????? ???????? ?? ???????. ??????? ?????????? ?????? ????????? ????????? ???????? ??? ??????????? ???????? ???????. ??????????? ?????? ????????? ??????????? ????????? ???????, ??????? ????????? ?????????? ?????? ???? ?????????.
?????????? ???? ?????????? ? ???????????? ????? ? event loop. ??????????? ???????? ??????????? ????? ??????????? ???????, ??????? ??? async/await ???????????. ???????? ???????????? ????? ???????? ????????????? ?????????? ?????????? ????????.
????????????? ???? ?????????? ???????? ????????? – V8 ? Chrome, SpiderMonkey ? Firefox, JavaScriptCore ? Safari. ??????????? ?????? ?????? ????????? JIT??????????? ??? ??????????? ??????????????????. ??? ????????????? ? ???????? ?? ????? ??????????.
?????? ???? ?? ???????????????? ??????????: ????? ?????????, ?????? ? DOM ? ?????????? ???????? ????????????
?????????? ?????????? ?????????? JS ??? ?????????? ???????????? ???????????????? ????????. ???????????? ????? ????????? ????, ???????? ?????????, ????????? ???? ? ?????? ??????????? ???????. ??? ???????? ?? ??????? ??????? ? ? ???????? ??????? ???????????? ?? ???????? ????????????.
Document Object Model ?????????????? HTML????????? ? ???? ????????????????? ????????? ????????. JavaScript ???? ?????? ? ?????? ??? ?????? , ?????????, ????????? ? ???????? ????????? ????????. ??????????? ? DOM ?????? ????????? ????????? ?????? ?????? ?????????? ???????????????? ??????? ??? ???????????? ????????.
????????? ??????? ???????? ??????? ???? ??????????????? ??????????????. ??????? ????????? ??????? ??? ?????? ?????, ???????? ??????, ????????? ????????. ???????????? ????????? ??????????? ???????, ??????? ????????? ???????????? ???????? ? ????? ?? ???????? ????????????. ???????? capturing ???????????? ?????? ??????? ?????????????.
??????????? ?????????? ???????????? ?????? ????? ??????????? ????????????? DOM. React, Vue ? Angular ???????? ?? ????????????? ?????? ? ?????????? ???????????. ??????????? ??????????? ???????? ?????????, ? ????????? ???? ????????? ???????? DOM.
JavaScript ? ????????? ???????????????: Node.js ? ???????? ??????????????
Node.js ?? ???? ???????? JS?runtime, ????????????????? ?? ?????? V8. ????????? ????????? ???????????? ??? ?? ???????? ? ???????????? ??????????? ?????????????????. ???????????? ?????????? ?????? ???? ??? ????????? ? ???????, ??? ??????????? ?????????? ????????.
??????????? ?????? ???????????? ???????????? ??????? ?????????????????? ??? ????????? ????????????? ????????. ????????????? ??????????? ???????? ???????????? ?????? ????????????? ??????????? ?? ????? ???????.
???????? ??????????? ????????? ???????????:
- ???????? HTTP????????? ? RESTful API ??? ?????? ??????? ? ?????????
- ?????? ? ?????? ?????? ????? ???????? ? ORM???????????
- ????????? ??????, ??????? ?????? ? ????????? ????????
- ?????????? ?????????????? ?????????? ? drgn ?????????????? ???????
?????????? npm ???? ???????? ??????? ??????? ??? ??????? ??????? ?????. Express, Koa, Fastify ? ?????? ?????????? ?????? ??????? ???????? ????????????. ???????????? ???????? ????????? ?????????? ?? ??????? ???????, ?????????????? ?? ?????????????.
????????????? ? ???????????????: ?????, ????????, SPA ? ????? ? API
???????? ???? ????????? ?????? ????? ??????????????. ???? ?????????? ???????????? ????????? ????????? ?????? ????? ????????? ?? ??????, ???????????? ???????????? email???????? ? ?????????? ???????. ???????????? ??????? ???????????? ????? ? ????????? ?????? ? ???????????????. ???????????? ????? ???????? ??????????? ?? ??????? ?? ???????? ??????.
???????? ????????? ?????????? ????????? ???????????????? ????. ???????????? ??????????? ??????? ???????? ????? ???????????, ????????? ? ??????? ??????. ?????????? GSAP, Anime.js ????????? ??????????? ??? ???????? ??????? ????????. CSS????????? ??????????? ????? ?????? ???? ?????????? ? ???????? ???????.
Single Page Applications ?????????? ??????? ??????????? ??? ???????????? ????????. ??????? ??????????? ?? ?????????? ???????, ????????? ?????????????? ?????????. ?????????? React, Vue, Angular ??????????????? ?????????? SPA ? ???????????? ????????????.
????? ? API ????????????? ????? ??????????? HTTP????????. Fetch API ? ?????????? Axios ???????? ??????? ? ??????? ? ????????? ?????? ? ??????? JSON. ???????????? ??????????? ?????????? ??? ????????????, ????????? ????????? ?????? ???????.
?????????????????? ????????? ? desktop? ??????????: React Native, Electron ? ?????? ???????
React Native ???? ??????????? ????????? ???????? ????????? ?????????? ??? iOS ? Android. ????????? ?????????? ???????????? ?????? ? ???????? ????????? ???????? ???????? ??????????. ???????????? ????? ??? ???? ??? ? ???????????? ?? ????? ??????????. Instagram, Facebook, Skype ?????????? ?????? ?????? ??? ??????????.
Electron ???????? ?????? ??? ???????? ?????????????????? ?????????? ?????????? ??? Windows, macOS ? Linux. ????????? ????????? Chromium ? Node.js ? ?????? ????? ??????????. ???????????? ????????? ?????????????? ??? ?????????? ?????????? ????????. Visual Studio Code, Slack, Discord ??????? ?? ???? Electron.
Ionic ????????????? ??????????? ??? ?????????? ????????? ????????? ??????????. ????????? ???????? ?? ?????????????? ? WebView ??? ??????????? ??????????. ?????????? ???????? ?? ????????? ???????? ? ?????? ??????? ?????.
NativeScript ????????? ??? ? ???????? ?????????? ??? WebView. ????????? ???????????? ?????? ?????? ? API ???????? ????? ???????. ???????????? ????????? ?????????????????? ???????? ?????????? ? ????????? ??????????????.
??????? ??? ?????????, ???? ? ?????? ????????? ??????? ????????????
????????????? ?????????? ??????????? ? ?????????????? WebExtensions API. ???????????? ????????? ????? ??????? ? Chrome, Firefox, Edge ? ?????? ????????. ?????????? ????????? ???????, ?????????? ????????, ???????????? ??????? ??? ???????. ??? ????????????? ? ?????????? ??????????? ? ????????????? ?????????????? ???????????.
??????????? ??????? ?????????? ??????????? ?????????????????? ?????? ? ??????????. Phaser, PixiJS, Three.js ???????????? ????????? 2D ? 3D ???? ? ????????. WebGL ??????? ?????????? ????????? ??????? ??? ??????? ?????????? ????????. ???????????? ????????? ?????? ????, ??????????????? ?????????? ? drgn ????????????? ???????????.
??? ???????????? ????????? ???????????? ?????????? ????? ?? ?????????? ??????????. ????????? Johnny?Five ???????????? ?????????????????? Arduino ? Raspberry Pi. ???????????? ??????????? ???????, ????? ???? ? IoT???????????.
??????????? ML ?????????? ??? ????? ????????? ????? ?????????? TensorFlow.js ? Brain.js. ???????????? ????????????? ????????? ???? ? ????????, ?????????????? ???????????, ?????????? ???????????? ????. ?????? ??????????? ?? ??????? ??????? ??? ???????? ?????? ?? ??????.
??? JavaScript ????????????? ? HTML ? CSS ? ??????????? ????? ?????????????? ??????????????
HTML ????????? ???????? ? ?????????? ????????????. ???? ???????? ????????? ????????????? ???????? – ?????????, ?????????, ??????, ???????, ?????. CSS ???????????? ?? ?????????? ??????????, ????????? ?????, ??????, ???????????? ?????????. ???? ???????????????? ????????? ??????????????? ? ???????????? ?????????.
??? ?????????? ????????? ?????? ???????????????????:
- HTML ??????????? ?????? ???????? ? ????????????? ??????? ??? ????????? ??????
- CSS ????????? ????????, ????????? ?????????? ?????? ? ?????? ?????? ?????????? ???????
- ?????????? ???? ????????????? ???????, ???????????? DOM ? ???????????? ??????? ? ?????????
?????????????? ?????????? ??????????????? ???????? ?????????? ? ????????? ????????. ????????? ???? ???????? ? CSS, ????????????????? ????????????? HTML, ???????????? ???????? ??????. ??????????? ???????? ?????? ????? ?????? ????? ? ???????????????? ?????? ??? ??????????.
??????????? ??????? ????????? ??????????? ??????? ??????????. Sass ? Less ???? ?????????? ? ??????? ? CSS. TypeScript ????????? ??????????? ????????? ??? ????????? ?????????? ????. ????????????? Pug ? Handlebars ????????? ????????? HTML. ??????????? ????????????? ??????????? ?????? ?? ?????????? ? ??????? ??????????.
?? ???? ???? JavaScript ?????????? ??? ????? ?? ????? ???????? ?????? ? ??????????????
?????? ?????????? ????? ???????????? ?????? ?????? ?? ???? ??????? ??????????. ???????????? ??????? ????????, ??????, ????????? ? ?????????? ?????????? ? ?????? ???????????. ???????? ????????? ???????, ??????? ???????????? ? ????? ?????? ???????.
???????? ?????? ?????????? ?????????? ?????????????. ??? ??????? ???? ?????????? ???????? ??? ????????? ??????????????? ???????????? ???????????. ????????? ???????????? ???????, ????????? ?????????? ?????????. ??????? ?????? ??????? ?????? ????????????? ??????? ? ????? ?????????? ??????.
???????? ?????????? npm ????????????? ???????? ??????? ???????. ???????????? ?????? ??????? ?????????? ??? ????? ????? – ?? ????????? ???? ?? ????????? ????????. ???????? ?????????? ????????? ????????????? ????? ??????????? ? ??????????. ???????? ???????? ??? ????????? ??????? ? drgn ?????????????? ???????????? ???????.
?????????? ???????? ????????? ECMAScript ???????????? ??????????? ???????????. ??????? ?????? ???? ????????? ????????? ?????????? ? ?????? ?????????. Async/await, ??????, ???????????????? ?????? ????? ???????? ????. ????????????? Babel ????????? ????????? ???????? ??????????? ? ????? ?????????.