Задает визуальное отображение, задает способ взаимодействия, дает доступ к тем или иным данным, которые соответствуют инпуту, и активируют работу тех или иных атрибутов. По сути это разные элементы, у них разные интерфейсы.
Например, если у тебя
type="text"
, то выглядеть будет как белый прямоугольник с рамкой, в который ты можешь печать текст и получить этот текст в атрибуте
value
Если у тебя
type="number"
, то выглядеть будет несколько иначе, появятся кнопочки. Вводить можно будет только цифры. Начинают работать дополнительные атрибуты, которые ограничивают диапазон вводимого числа, шаг инкремента при нажатии на стрелки, а так-же появляется дополнительное форматирование.
Если у тебя
type="file"
, то вводить ты туда ничего не можешь, в
value
будет имя выбранного файла. А через свойство
files
можно будет получить доступ к выбранным файлам. Так-же начнет работать атрибут
accept
.
И так для каждого типа инпута.
Так что тут можно сказать лишь то, что сказать что атрибут
type
задает тип инпута, это как ничего не сказать.
Преподаватель говорит, что атрибут type у input задаёт тип данных для этого элемента.
Не он не прав, в зависимости от типа, браузер отображает разные элементы. И взаимодействовать с инпутами надо по разному.
Но мне кажется, что атрибут type задаёт не тип данных, а лишь формат ввода данных.
Учитывая выше написанное, это не так.