JavaScript - нетипизированный язык. Вам не надо указывать тип данных при объявлении переменных. Но, тем не менее, типы данных как таковые в JavaScript существуют, и это надо учитывать, когда вы используете операторы с переменными определённых типов или с выражениями, которые возвращают определённый тип. И различные операторы требуют, чтобы операнды возвращали значения определённого типа. Например, нельзя умножать строки: "F" * "A" Такое выражение не является допустимым. Хотя в современных браузерах ошибки не произойдет. Это выражение, скорее всего, вернёт значение NaN. Но всё равно так делать не следует. В то же время интерпретатор JavaScript по мере своих сил пытается преобразовать любое выражение в правильный тип. Поэтому вот такое выражение: "5" * "3" является вполне допустимым. Здесь строки будут преобразованы в числа, а затем будет выполнено умножение. А итогом применения оператора * будет уже не строка, а число (в данном примере 15). См. также преобразование числа в строку. Некот