Выбор ответа Junior Формы обновлено

Тип значения числового поля

Вопрос

Пользователь ввёл 5 в поле. Что покажет alert?

<input type="number" onChange={(e) => alert(e.target.value === 5)} />

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: false: e.target.value всегда строка, здесь "5". Свойство value у DOM-элемента input всегда строка, независимо от type.

Варианты ответа

  1. true, потому что у type="number" значение число
  2. false: e.target.value всегда строка, здесь "5"правильный ответ
  3. true, потому что React приводит типы через ==
  4. Ничего: onChange у числового поля не срабатывает

Разбор

Свойство value у DOM-элемента input всегда строка, независимо от type. Строгое сравнение "5" === 5 даёт false. Число берут через Number(e.target.value) или e.target.valueAsNumber (для пустого поля он вернёт NaN).

  • type="number" влияет на клавиатуру и валидацию, но не на тип value.
  • React не меняет оператор сравнения.
  • onChange у числового поля работает как у любого другого.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме