01

Ինչպե՞ս է այն աշխատում

Ժամանակակից JS-ը օգտագործում է JIT (Just-In-Time) կոմպիլյացիա։ Սա նշանակում է, որ կոդը թարգմանվում է մեքենայական լեզվի հենց կատարման պախին՝ ապահովելով բարձր արագություն։

V8 Engine (Chrome/Node)

Ամենաարագ շարժիչներից մեկը, որը փոխակերպում է JS կոդը օպտիմիզացված մեքենայական կոդի։

Single Threaded

JS-ը կատարում է մեկ գործողություն մեկ պահին, բայց օգտագործում է Event Loop՝ ասինխրոնության համար։

graph LR A[JS Code] --> B(Parser) B --> C{AST Tree} C --> D[Interpreter/JIT] D --> E[Binary Code] E --> F((Output)) style A fill:transparent,stroke:#f7df1e style F fill:#f7df1e,color:#000
02

Միջավայրեր

🌐 Browser

  • Window & DOM manipulation
  • Fetch API / XHR
  • Cookies / SessionStorage

💻 Node.js

  • File System (fs module)
  • Process & OS access
  • Server-side logic
03

Սցենարի կատարման փուլերը

Default վիճակում բրաուզերը կատարում է կոդը հերթականությամբ: Երբ հանդիպում է սկրիպտին, HTML-ի պարսինգը կանգնում է (Blocking):

sequenceDiagram participant HTML as HTML Parsing participant JS as JS Engine (V8) participant DOM as Browser DOM HTML->>HTML: Parse HTML... HTML->>JS: Encounter <script> Note over JS: Parse & Execute JS->>DOM: Modify DOM Elements DOM-->>HTML: Update UI / Page HTML->>HTML: Resume HTML Parsing

Async

Սկրիպտը բեռնվում է ֆոնային ռեժիմում և կատարվում է հենց պատրաստ լինի:

Defer

Սկրիպտը բեռնվում է ֆոնում, բայց կատարվում է միայն այն ժամանակ, երբ HTML-ը ամբողջությամբ պատրաստ է:

Փորձարկիր DOM-ը ✨

// Log: DOM mutated successfully!