Skip to main content

Динамічна типізація

Що таке типізація

Типізація - це спосіб, яким мова програмування керує типами даних (числа, рядки, об'єкти тощо).


Статична vs Динамічна типізація

ХарактеристикаСтатична типізаціяДинамічна типізація
Коли визначається типНа етапі компіляціїНа етапі виконання
Чи можна змінити тип змінноїНіТак
Приклад мовTypeScript, Java, C#, C++JavaScript, Python, PHP
Перевірка типівДо запуску програмиПід час виконання
Тип помилки при невідповідностіПомилка компіляціїПомилка під час виконання

Приклад: JavaScript (динамічно типізований)

javascript
let value = 42; // число console.log(typeof value); // "number" value = "Привіт"; // тепер рядок! console.log(typeof value); // "string" value = true; // тепер булеве значення console.log(typeof value); // "boolean"

Тут тип змінної може змінюватися під час виконання, і це нормально для JS.


Приклад для порівняння: TypeScript (статично типізований)

javascript
let value: number = 42; value = "Привіт"; // Помилка: тип "string" не присвоюється типу "number"

У TypeScript (або Java) тип вказується один раз і не може змінюватися.


Наслідки динамічної типізації

Плюси:

  • Швидке написання коду, менше «шумних» анотацій.
  • Гнучкість: змінні можна повторно використовувати з різними типами.

Мінуси:

  • Помилки проявляються тільки під час виконання.
  • Складніше налагоджувати великі проекти.
  • Можливі несподівані перетворення типів:
javascript
console.log('5' - 2); // 3 (рядок → число) console.log('5' + 2); // "52" (число → рядок)

Підсумок

JavaScript - динамічно і слабко типізована мова, тому що:

  • тип змінної визначається під час виконання,
  • і може змінюватися в будь-який момент,
  • при цьому мова автоматично перетворює типи, якщо це можливо.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.