PassFront
  1. PassFront
  2. База знаний
  3. Основы языка

Что такое типизация?

Основы языка

Типизация — это система правил, определяющая, как язык работает с типами данных: когда проверяет типы и насколько строго.

Характеристики типизации в 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 добавляет статическую проверку на компиляции.

Другие вопросы раздела