Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Динамічна типізація». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Типізація** - це спосіб, яким мова програмування керує **типами даних** (числа, рядки, об'єкти тощо). При **динамічній типізації** тип змінної визначається на етапі виконання, і його можна змінювати без помилок компіляції. **Ключове:** JavaScript - динамічно і слабко типізована мова: тип змінної визначається під час виконання, може змінюватися в будь-який момент, а мова автоматично перетворює типи, якщо це можливо.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## Що таке типізація **Типізація** - це спосіб, яким мова програмування керує **типами даних** (числа, рядки, об'єкти тощо). --- ## Статична 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 - **динамічно і слабко типізована мова**, > тому що: > > - тип змінної визначається **під час виконання**, > - і може **змінюватися в будь-який момент**, > - при цьому мова **автоматично перетворює типи**, якщо це можливо.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.