Тип переменной зависит от того, какой тип информации в ней хранится. JavaScript не является жестко типизированным языком. Это означает, что вы не должны точно определять тип данных переменной, в момент ее создания. Тип переменной присваивается переменной автоматически в течение выполнения скрипта. Так, например, вы можете определить переменную следующим образом: var answer = 42
А позже, вы можете присвоить той же переменной, например следующее значение: answer = "Thanks for all the fish..." Или рассмотрим следующее выражения: //пример var oneString="1" var oneInt=1 var oneConcatenate=oneString+oneInt // В результате получается "11" var oneAddition=oneInt+oneString // В результате получается 2
В первой операции сложения первый операнд является строкой. JavaScript предпологает, что производится операция с двумя строками. Когда JavaScript обнаруживает в качестве второго операнда целое число, он в соответствии со своими представлениями преобразует переменную в строку.
Поскольку JavaScript свободно типизированный язык, то это не вызовет ошибки.
Так как JavaScript не поддерживает никаких методов и свойств для определения типа текущего значения переменной, очень важно внимательноотслеживать типы переменных во избежание неожиданных результатов.
Вообще, в выражениях, включающие числовые и строковые значения, JavaScript преобразовывает числовые значения в строковые. Например, рассмотрим следующие утверждение: x = "The answer is " + 42 y = 42 + " is the answer."
Первое утверждение будет строка "The answer is - 42 ". Второе утверждение возвращает строку " 42 - The answer is".
JavaScript предоставляет несколько специальных функций для управления строковыми и числовыми значениями: