Что такое типизация?
Основы языка
Типизация — это система правил, определяющая, как язык работает с типами данных: когда проверяет типы и насколько строго.
Характеристики типизации в JavaScript
Динамическая
Тип определяется в рантайме по значению; переменная может менять тип:
let x = 5; // number
x = 'text'; // string — без ошибкиСлабая (нестрогая)
Активные неявные приведения типов при операциях:
'5' + 1; // '51' — число к строке
'5' - 1; // 4 — строка к числуВиды типизации (классификация)
- Статическая (TS, Java) — типы на компиляции vs динамическая (JS, Python) — в рантайме.
- Сильная (Python) — строгие приведения vs слабая (JS) — активные неявные приведения.
- Явная (аннотации типов) vs неявная (вывод типов).
TypeScript
Добавляет статическую типизацию поверх JS: проверка на компиляции, автодополнение, безопасный рефакторинг. В рантайме типы стираются.
Как безопаснее в JS
===вместо==.- Явные преобразования (
Number()). - TypeScript.
Коротко для собеседования
Типизация — правила работы с типами. JavaScript динамически (тип в рантайме, меняется) и слабо (неявные приведения, '5'+1='51') типизирован. Виды: статическая/динамическая, сильная/слабая, явная/неявная. TypeScript добавляет статическую проверку на компиляции.