Функция isNaN - Число или не число - Числовые объекты типа Number в Javascript. Полное JavaScript Number Reference
Для представления числовых типов данных в JavaScript имеется объект Number . Данный класс содержит константы и методы, которые достаточно часто используются при работе с числами. Об использовании объекта Number я Вам и собираюсь рассказать.
Конструктор в классе Number используется крайне редко, так как при создании числовых типов они автоматически преобразуются в объект Number . Но всё-таки на всякий случай привожу пример использования конструктора объекта Number :
Var num = new Number(5.1);
В качестве параметра конструктора класса Number передаётся обычное число.
Теперь перейдём к свойствам класса Number . Рассмотрим свойства-константы MIN_VALUE и MAX_VALUE , которые показывают минимально возможное значение (большее нуля при этом) и максимальное возможное значение у чисел. Давайте выведем эти константы (обратите внимание, что мы обращаемся к свойствам не объекта, а класса! ):
Document.write(Number.MIN_VALUE + "
");
document.write(Number.MAX_VALUE + "
");
Если запустить этот скрипт, то Вы увидите два значения. Как видите, точность очень высокая (следует из MIN_VALUE ), а максимальное значение огромное (следует из MAX_VALUE ).
Следующие две константы означают бесконечность. Константа POSITIVE_INFINITY означает положительную бесконечность, а NEGATIVE_INFINITY , соответственно, отрицательную бесконечность:
Document.write(Number.POSITIVE_INFINITY + "
");
document.write(Number.NEGATIVE_INFINITY + "
");
Как можно получить бесконечность при вычислениях? А очень просто, например, посчитать экспоненту от 1000:
Document.write(Math.exp(1000));
В результате Вы увидите: "Infinity ". Особенность бесконечности в том, что она может участвовать в математических операциях. Например:
Document.write(1000 / Math.exp(1000));
В результате Вы увидите 0 . И, действительно, если 1000 разделить на бесконечно большое число, то будет 0.
Теперь перейдём к методам объекта Number . И сразу рассмотрим безумно часто используемый метод, который называется Number() . Этот метод преобразует переменную (которая передаётся через параметр) в число. Очевидно, что данный метод используется, в первую очередь, при преобразовании строк в числа. Вот пример:
Var num = Number("321.5");
Заметьте, что передаём мы строку, а возвращается уже число "321.5 ". В частности, когда мы принимаем значения от пользователя из функции prompt() . То мы получаем строку! Это очень важно, если Вы это не поймёте, то Вам не избежать ошибок. И чтобы эта строка стала числом её необходимо пропустить через метод Number() . Поэтому прежде, чем использовать данные полученные от пользователя, как числа, необходимо их преобразовать в эти самые числа. Это очень важное правило!
И последний метод, который достаточно часто используется - это toFixed() . Этот метод применяется к объекту. Метод toFixed() используется для округления дробных чисел. В качестве параметров данный метод принимает число, означающее количество знаков после запятой, которое мы хотим оставить:
Var num = 931.1256;
document.write(num.toFixed(3));
В результате Вы увидите: "931.126 ", то есть округлённое число до трёх знаков после запятой.
Вот и все свойства и методы объекта Number , которые Вы будете регулярно использовать в Вашей практической деятельности.
Последнее обновление: 1.11.2015
Объект Number представляет числа. Чтобы создать число, надо передать в конструктор Number число или стоку, представляющую число:
Var x = new Number(34); var y = new Number("34"); document.write(x+y); // 68
Определения x и y в данном случае будут практически аналогичны.
Однако создавать объект Number можно и просто присвоив переменной определенное число:
Var z = 34;
Объект Number предоставляет ряд свойств и методов. Некоторые его свойства:
Number.MAX_VALUE: наибольшее возможное число. Приблизительно равно 1.79E+308. Числа, которые больше этого значения, рассматриваются как Infinity
Number.MIN_VALUE: наименьшее возможное положительное число. Приблизительно равно 5e-324 (где-то около нуля)
Number.NaN: специальное значение, которое указывает, что объект не является числом
Number.NEGATIVE_INFINITY: значение, которое обозначает отрицательную неопределенность и которое возникает при переполнении. Например, если мы складываем два отрицательных числа, которые по модулю равны Number.MAX_VALUE. Например:
Var x = -1 * Number.MAX_VALUE var y = -1 * Number.MAX_VALUE var z = x + y; if(z===Number.NEGATIVE_INFINITY) document.write("отрицательная неопределенность"); else document.write(z);
Number.POSITIVE_INFINITY: положительная неопределенность. Также, как и отрицательная неопределенность, возникает при переполнении, только теперь в положительную сторону:
Var x = Number.MAX_VALUE var y = Number.MAX_VALUE var z = x * y; if(z===Number.POSITIVE_INFINITY) document.write("положительная неопределенность"); else document.write(z);
Некоторые основные методы:
- Number.MAX_VALUE: Возвращает наибольшее целое это 1.79E+308. Все остальные числа, которые будут больше данного значения, это Infinity, то есть бесконечность
- Number.MIN_VALUE: Возвращает наименьшее положительное целое число это 5e-324
- Number.NaN: указывает что объект не число
- Number.NEGATIVE_INFINITY: Обозначает отрицательную неопределенность, которая возникает при переполнении. Например: var x1 = -10 * Number.MAX_VALUE var y1 = -10 * Number.MAX_VALUE var z1 = x1 + y1; if(z1===Number.NEGATIVE_INFINITY) document.write("есть отрицательная неопределенность"); else document.write(z1);
- Number.POSITIVE_INFINITY: сответственно положительная неопределенность. Может возникать при переполнении только на этот раз в положительную сторону: var x1 = Number.MAX_VALUE var y1 = Number.MAX_VALUE var z1 = x1 * y1; if(z1===Number.POSITIVE_INFINITY) document.write("есть положительная неопределенность"); else document.write(z1);
- isNaN(): проверяет является ли объект числом если объект не число, то возвращает true:
var a1 = Number.isNaN(Number.NaN); //true
var b1 = Number.isNaN(true); //false - new Number(true) = 1
var c1 = Number.isNaN(null); //false - new Number(null) = 0
var d1 = Number.isNaN(255); //false
var e1 = Number.isNaN("55"); //false
А вот такое выражение вернет false, несмотря на то, что значение не является числом:
Var fal = Number.isNaN("hello world"); //false
Поэтому во избежание таких ситуаций, следует использовать глобальную функцию isNaN:
Var fal = isNaN("hello world"); //true
- parseFloat(): Эта функция преобразует строку в число с запятой. Например: var a1 = Number.parseFloat("44.90"); //44.9 alert(a1); var b1 = Number.parseFloat("hello world"); //NaN alert(b1); var c1 = Number.parseFloat("34hello"); //34 alert(c1);
- parseInt(): Эта функция преобразует строку в целое число. Вот пример: var a1 = Number.parseInt("44.90"); //44 document.write(a1); var b1 = Number.parseInt("hello world"); //NaN document.write(b1); var c1 = Number.parseInt("25hello"); //25 document.write(c1);
- toFixed(): позволяет оставить в числе с плавающей точкой определенное количество знаков после запятой. Пример:
var a1 = 10/1.44;
document.write("До метода toFixed(): " + a1 + "
"); a1 = a1.toFixed(2); // останется 2 знака после запятой document.write("После метода toFixed(): " + a1 + "
"); В браузере получим: До метода toFixed(): 6.944444444444445 После метода toFixed(): 6.94
isNaN() : определяет, является ли объект числом. Если объект не является числом, то возвращается значение true:
Var a = Number.isNaN(Number.NaN); // true var b = Number.isNaN(true); // false - new Number(true) = 1 var c = Number.isNaN(null); // false - new Number(null) = 0 var d = Number.isNaN(25); // false var e = Number.isNaN("54"); // false
Но следующее выражение вернет false, хотя значение не является числом:
Var f = Number.isNaN("hello"); // false
Чтобы избежать подобных ситуаций, лучше применять глобальную функцию isNaN :
Var f = isNaN("hello"); // true
parseFloat() : преобразует строку в число с плавающей точкой. Например:
Var a = Number.parseFloat("34.90"); // 34.9 document.write(a); var b = Number.parseFloat("hello"); // NaN document.write(b); var c = Number.parseFloat("34hello"); // 34 document.write(c);
parseInt() : преобразует строку в целое число. Например:
Var a = Number.parseInt("34.90"); // 34 document.write(a); var b = Number.parseInt("hello"); // NaN document.write(b); var c = Number.parseInt("25hello"); // 25 document.write(c);
toFixed() : оставляет в числе с плавающей точкой определенное количество знаков в дробной части. Например:
Var a = 10 / 1.44;
document.write("До метода toFixed(): " + a + "
");
a = a.toFixed(2); // оставляем два знака после запятой
document.write("После метода toFixed(): " + a + "
");
Функция isNaN возвращает лишь два значения: либо Истина - true , либо Ложь - false .
Если в переменной не число , то функция isNaN вернет Истину - следует обратить на это особое внимание (НЕ ЧИСЛО – это ИСТИНА. isNaN переводится как не число) . Если же в переменной число , то она вернет Ложь .
var name
= "Антон"
; /* строковый объект */
var age
=
35
; /* числовой объект */
if(isNaN
(name
)) /* Если в переменной name не число - это Истина */
{
document.write
(name
+ " - это не число"
)
}
else /* иначе - Ложь */
{
document.write
(name + " - это число"
)
}
Запомните, что isNaN - это встроенная в javascript функция.
, благодаря которому и при помощи функции isNaN проводилась проверка: является ли значение переменной числом или нет .Кроме этого здесь нужно будет вспомнить тему массивов , циклов и функций в javascript .
var randSimbol = ["Молоко" , 77 , 11 , "Мед" , - 88 ];
function
number
(randSimbol
)
{
for(i
=
0
; i
<
randSimbol
.length
; i
++
) /* Составляем цикл для перебора всех элементов масива */
{
if(isNaN
(randSimbol
)) /* Если элемент массива не число (это Истина), то... */
{
document.write
(randSimbol
+ " - это не число
"
)
}
else /* Иначе элемент массива - это число (и это Ложь).... */
{
document.write
(randSimbol
+ " - это число
"
)
}
}
}
number (randSimbol ); /* Вызываем функцию */
Вот так работает функция isNaN применительно к числовым объектам Number в Javascript .
Здравствуйте! В этом уроке мы продолжаем тему встроенных объектов в JavaScript и после объекта Date рассмотрим такой встроенный объект как Number, который представляет числа. Чтобы создать число, надо просто передать в Number число или стоку, представляющую число:
Var num1 = new Number(55); var num2 = new Number("55"); document.write(num1+num2); //110
Определения переменных num1 и num2 будут аналогичны.
Создание объекта NumberСоздать объект Number можно присвоением переменной определенного числа:
Var a1 = 32;
В объекте Number есть несколько свойств и методов. Вот они:
Перечислим некоторые основные методы объекта Number:
Объект Number используется для создания чисел
Метод isNaN() проверяет является ли объект числом и возвращает true, если он числом не является
Если число выходит за пределы числового диапозона JavaScript, то возвращается специальное значение Infinity
Для преобразования строки в число используются функции parseInt/parseFloat
Округлить число до нужного количества знаков после запятой позволяет метод toFixed()
О бъект Number представляет числовую дату, либо целые числа или число с плавающей точкой. В общем, вам не нужно беспокоиться об объектах Number, поскольку браузер автоматически преобразует число литералов в экземпляры класса Number.
СинтаксисСинтаксис для создания объекта Number следующий:
Var val = new Number(number);
Если в место числа, вы предоставляете какие – либо не-номерные аргументы, то аргумент не может быть преобразован в число, функция возвращает NaN (Not-A-Number).
Свойства NumberВот список всех свойств и их описание.
В следующих разделах мы предоставим несколько примеров, чтобы продемонстрировать свойства Number.
Методы NumberОбъект Number содержит только стандартные методы, которые являются частью определения каждого объекта.
1 | – Принудительный ряд для отображения в экспоненциальной записи, даже если число находится в диапазоне, в котором JavaScript, как правило, использует стандартные обозначения. |
2 | – Преобразует число с определенным количеством цифр справа от десятичной запятой. |
3 | – Возвращает версию строкового значения текущего числа в формате, который может изменяться в соответствии с локальными настройками браузера. |
4 |