
Типы данных JavaScript
В процессе работы компьютерные программы манипулируют значениями, такими как число 7 или текcт "HelloWorld!". Типы значений, которые могут быть представлены и обработаны в языке программирования, известны как типы данных. Типы данных в JavaScript делятся на две категории простые (их также называют примитивные) типы и составные (объекты). К категории простых типов относятся:
String - текстовые строки (обычно их называют просто - строки)
Number - числа
Boolean - логические (булевы) значения
Так же к простым типам относятся два специальных значения:
null
undefined
К составным типам данных относятся:
Function - функции
Array - массивы
Object - объекты
Числа
Для представления чисел в JavaScript используется 64-битный формат, определяемый стандартом IEEE 754. Этот формат способен представлять числа в диапазоне от 5e-324 до 1.7976931348623157e+308. Все числа в JavaScript представляются вещественными значениями (с плавающей точкой), т.е. нет различий между целыми и вещественными значениями. При использовании слишком длинных чисел их можно сокращать с помощью экспоненциальной записи. Для обозначения экспоненты используется буква "e", которая ставится сразу же после мантиссы и перед экспонентой. Например значение 3.52x105 (352 000), вместо всего, что находится между числом и экспонентой, нужно поставить букву "e", в результате предыдущую запись можно представить в таком виде:
1 |
var bigNumber = 3.52e5; |
Любому числовому литералу может предшествовать знак минус (-), делающий число отрицательным.
1 |
var temperature = -20; |
Специальные числовые значения
В JavaScript имеются предопределённые глобальные переменные Infinity и NaN. Переменная Infinity хранит специальное значение обозначающее бесконечность Infinity (Infinity в переводе с англ. - бесконечность), переменная NaN также хранит специальное значение NaN (NaN сокращение от англ. Not a Number - не число). По стандарту ECMAScript 5, эти переменные доступны только для чтения. Рассмотрим в каких случаях можно получить данные значения. Значение бесконечности можно получить к примеру в результате деления числа на 0
1 |
alert(123 / 0); // Infinity |
При делении отрицательного числа на 0, получится минус бесконечность -Infinity
1 |
alert(-12345 / 0); // -Infinity |
Бесконечность также можно получить, если сделать очень большое число, для которого количество разрядов в двоичном представлении не помещается в соответствующую часть стандартного 64-битного формата, например:
1 |
alert( 1e500 ); // Infinity |
Значение NaN используется для обозначения математической ошибки, она возникает в том случае, если математическая операция не может быть совершена, например:
1 2 3 4 |
var a = 10, b = "текст"; document.write(a - b); // математическая операция не с числовым аргументом document.write(0 / 0); // деление нуля на нуль |
Значение NaN обладает одной особенностью: операция проверки равенства всегда возвращает отрицательный результат, даже если сравнивать его с самим собой. Это значит, что нельзя использовать проверку x == NaN, чтобы определить, является ли значение переменной x значением NaN. Вместо этого следует выполнить проверку x != x. Эта проверка вернет true тогда и только тогда, когда x имеет значение NaN. Аналогичную проверку можно выполнить с помощью функции isNaN(). Она возвращает true, если аргумент имеет значение NaN.
1 2 3 4 |
var x = NaN;
document.write(x != x, "<br>"); // true document.write(isNaN(x)); // true |
Таким образом в JavaScript есть обычные числа и три специальных числовых значения: NaN, Infinity и -Infinity.