русский  עברית
tadam logo
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей

Введите адрес электронной почты:

 12
 3.543

Числа в JavaScript представляют собой 64-битные значения двойной точности формата IEEE 754. Они такие же неизменяемые, как и строки. Доступны С-подобные операторы для работы с числами (+, -, *, /, %, =, +=, -=, *=, /=, ++, –).

Тип данных числа — «number».

 typeof 12 // "number"
 typeof 3.543 // "number"

Логическое значение по умолчанию

Если это 0, то значение по умолчанию false:

 !0 // true
 !1 // false
 !-1 // false

Поскольку числа реализованы как значения двойной точности, то следующий результат является верным:

0.1 + 0.2 // 0.30000000000000004

Объект Math

JavaScript предоставляет инструменты для работы с числами в объекте Math:

 Math.PI // 3.141592653589793
 Math.cos(Math.PI) // -1

Анализ чисел

parseInt и parseFloat помогают анализировать числа и преобразовывать строки в числа. Если система исчисления не указана, они делают некоторое неявное преобразование:

 parseInt("123") = 123 (implicit decimal)
 parseInt("010") = 8 (implicit octal)
 parseInt("0xCAFE") = 51966 (implicit hexadecimal)
 parseInt("010", 10) = 10 (explicit decimal)
 parseInt("11", 2) = 3 (explicit binary)
 parseFloat("10.10") = 10.1

Конвертация чисел в строки

После добавления чисел к строке результат всегда является строкой. Оператор идентичен, поэтому будьте осторожны: если Вы хотите сложить числа и потом добавить их к строке, то вычисления необходимо взять в круглые скобки:

 "" + 1 + 2; // "12"
 "" + (1 + 2); // "3"
 "" + 0.0000001; // "1e-7"
 parseInt(0.0000001); // 1 (!)

Или используйте класс String в javascript, который преобразует значение в строку:

 String(1) + String(2); //"12"
 String(1 + 2); //"3"

Неопределенности и бесконечности

Анализ чего-то, что не является числом возвращает неопределенность (NaN). isNaN может помочь обнаружить подобный случай:

 parseInt("hello", 10) // NaN
 isNaN(parseInt("hello", 10)) // true

Деление на ноль возвращает бесконечность:

 1 / 0 // Infinity

Как неопределенность (NaN), так и бесконечность (Infinity) имеют тип «number»:

 typeof NaN // "number"
 typeof Infinity // "number"

Помните, что неопределенности сравниваются довольно странным способом:

 NaN == NaN // false (!)

Но:

 Infinity == Infinity // true

Целое число

Целое число — чистый тип числа. Всегда, когда явно указан, показывает, что ожидается число без плавающей точки.

Число с плавающей точкой

Число с плавающей точкой — чистый тип числа, также как и целое число, но всегда, когда явно указано, показывает, что ожидается дробное число.

Была ли эта информация полезной?
   

Комментарии