Преобразование типов данных
Тип переменной зависит от того, какой тип информации в ней хранится. 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 предоставляет несколько специальных функций для управления строковыми и числовыми значениями:
· eval вычисляет строку, представляющая любые JavaScript литералы или переменные, преобразовывая ее в число.
· parseInt преобразовывает строку в целое число в указанном основании системы счисления, если возможно.
· parseFloat преобразовывает строку в число с плавающей точкой, если возможно.
Дата добавления: 2015-09-14; просмотров: 717;