JavaScript не можна однозначно назвати компільованим або інтерпретованим мовою, тому перед тим, як стверджувати це, давайте розглянемо, що ці два терміни насправді означають і в чому полягають їхні відмінності.
Компільовані та Інтерпретовані мови: що це таке?
Обидва типи мов виконують одну й ту саму задачу: перетворюють код, зрозумілий людині, в код, зрозумілий машині (0 і 1). Однак спосіб їх роботи значно різниться.
Компільовані мови:
- Код повністю береться і відразу перетворюється на машинний код.
- Цей процес здійснюється за допомогою компілятора.
- Після завершення компіляції, виходить готовий програмний продукт (машинний код), який потім можна виконувати.
Переваги:
- Вища швидкість виконання, оскільки код вже попередньо перетворений на машинний.
- Помилки можуть бути виявлені ще на етапі компіляції.
Недоліки:
- Потрібно повторно компілювати код після кожної зміни.
Приклад мов: C, C++, Go
Інтерпретовані мови:
- Код читається по черзі і перетворюється на машинний код в реальному часі (run-time).
- Цей процес здійснюється за допомогою інтерпретатора.
Переваги:
- Можна одразу змінювати код і бачити результат.
- Не потрібно постійно повторно компілювати код.
Недоліки:
- Швидкість виконання нижча, оскільки кожен рядок необхідно зчитувати і виконувати в реальному часі.
- Помилки виявляються лише під час виконання коду.
Приклад мов: Python, JavaScript, PHP
Компільоване — код повністю перетворюється на машинний код за один раз.
Інтерпретоване — кожен рядок коду окремо перетворюється на машинний код.
JavaScript до якого з цих типів належить?
JavaScript є інтерпретованою мовою, і ось чому:
- Після написання коду можна одразу виконати його, без необхідності компіляції.
- Код виконується рядок за рядком.
Однак у сучасних браузерах для JavaScript застосовується техніка JIT (Just-In-Time) компіляції. Наприклад, при виконанні коду JS, браузер може вивести повідомлення про помилки, вказуючи, де саме і в якому рядку коду сталася помилка.
Відмінності:
Порівняння:
- Компільована мова: Фільм знімається заздалегідь, після чого його можна дивитися.
- Інтерпретована мова: Кожного разу проводиться живе шоу.
Особливість JavaScript:
JavaScript не є повністю інтерпретованою чи компільованою мовою. Завдяки JIT-компіляції в сучасних рушіях, JavaScript можна вважати "половиною інтерпретованою, половиною компільованою" мовою.
Перекладено з: JavaScript Compiled yoki Interpreted til ?