Типы данных в JavaScript
В JavaScript переменная может иметь один из 6 типов данных: Null, Undefined, Number, String, Boolean, Object. Первые 5 типов называются примитивными
.
Описание типов данных
Null
Данный тип имеет всего одно возможное значение - null
. Оно означает, что переменная не имеет никакого значения (пустое значение). Это не одно и то же, что пустая строка или число ноль, так как пустая строка и ноль - это вполне определенные значения своих типов. null
- это ничто
.
Undefined
Имеет всего одно возможное значение - undefined
. Означает неопределенный
тип. Присваивается всем переменным при объявлении.
var result; alert(result); /* undefined */
Значение undefined
напрямую обычно не присваивается, так как для пустого значения специально введено значение null
.
Number
Числовой
тип данных. Объединяет в себе целые и вещественные числа. Дополнительно в этот тип данных введены специальные значения:
+Infinity
(илиInfinity
) - положительная бесконечность.-Infinity
- отрицательная бесконечность.NaN
-не число
(Not-A-Number). Является результатом при ошибке вычислений.
alert(-1/0); /* -Infinity */ alert('one' * 2); /* NaN, так как 'one' не числовой тип */
Если число начинается с
или 0x
, то JavaScript считает, что число указано в шестнадцатеричной системе счисления:0X
alert(0xFF); // 255
Если число начинается с
, то JavaScript считает, что число указано в восьмеричной системе счисления:0
alert(010); // 8
Число можно указать в экспоненциальной форме:
alert(1e 5); // 100000
String
Строковый
тип данных. Строка должна быть заключена в кавычки (одинарные или двойные).
str1 = "Строка 1"; str2 = 'Строка 2';
Каждый символ имеет свою позицию в строке. Первый символ имеет позицию 0, второй - позицию 1, третий - позицию 2, и т.д.
Чтобы использовать внутри строки служебный символ, его необходимо экранировать, то есть добавить перед ним обратный слеш
.\
str = 'Одинарные \'кавычки\' и обратный слеш \\'; alert(str); /* Одинарные 'кавычки' и обратный слеш \ */
Символы, перед которыми установлен обратный слеш, не воспринимаются как служебные, а являются частью строки. Сам символ
тоже является служебным и должен экранироваться.\
Обратный слеш также используется для представления специальных символов строки:
\n
- перевод строки.\t
- символ табуляции.\uHEX
- представление любого символа, гдеHEX
- шестнадцатеричный код символа в кодировке Unicode.
Boolean
Булевый
(логический) тип данных. Имеет два возможных значения - true
(истина) и false
(ложь). Используется для логических вычислений.
Object
Объект не является примитивным типом данных. Это элемент с набором свойств и методов. В нем могут использоваться различные примитивные типы и сложные конструкции. Пример простого объекта:
var address = { city: 'Астрахань', street: 'Заречная', house: 101 };
Создан объект address
со свойствами city
, street
и house
.
Преобразование типов
Любое значение может быть преобразовано в числовой
, строковый
или булевый
тип.
Правила преобразования примитивов в числовой
тип:
- Числа остаются числами.
- Строки преобразуются в числа, если это возможно. Если нет, тогда значение
NaN
. Булевые
значения:true
преобразуется в1
,false
в0
.null
преобразуется в0
.undefined
преобразуется вNaN
.
Преобразование примитивов в строковый
тип происходит без изменений. Все ключевые слова и числа становятся строками того же содержания.
При преобразовании в логический тип данных пустая строка '