Как проверить переменную «лежит» там строка или число?
prompt() — всегда возвращает строку. Но это может быть строка с символом числа: «3» например.
Надо попытаться перевести ее в строку: Number(n) — получим либо число, либо NuN. Например Number(«2») даст 2, а Number(«a») даст NaN
Чтобы проверить, что в переменной NaN надо вызвать Number.isNaN. Number.isNaN(2) даст false, Number.isNaN(NaN)
В итоге получаем
var n=prompt(); if(Number.isNaN(Number(n))) alert('Это строка');
Ответ написан более трёх лет назад
Нравится 4 3 комментария

pegas @1PeGaS Автор вопроса
Смотрите:
var n=prompt(); // Если ввести строку
n=+n;
alert(n); // И вывести непосредственно alert(n); То выводит NaN
Но если проверить n==NaN будет false
JavaScript Проверка, является ли переменная числовым примером
JavaScript называется динамически типизированным языком. Это означает, что в языке есть типы данных, но переменные могут содержать значения разных типов данных в разные моменты времени. Мы можем объявить переменную и назначить строку, а затем присвоить ей номер следующим образом:
let name = «Siddharth» ;
Поведение, отображаемое в приведенном выше фрагменте, делает JavaScript динамически типизированным языком. Lisp, Groovy – это некоторые другие динамически типизированные языки. Это подводит нас к сути этой статьи. Как проверить, содержит ли переменная в определенный момент времени числовое или числовое значение.
В этой статье мы узнаем о проверке типов в JavaScript. В частности, мы узнаем, как проверить, является ли переменная числом. Давайте начнем без дальнейших задержек.
2. Проверка JavaScript, является ли переменная числом
Мы можем выполнить эту проверку, используя оператор typeof в JavaScript. Оператор typeof возвращает строку, которая указывает тип предоставленного операнда. JavaScript имеет следующие типы данных:
Помимо вышесказанного есть значение NaN .
Итак, давайте создадим утилиту для проверки типа и возврата ее типа. Структура нашего приложения NodeJS будет выглядеть следующим образом:

Код для модуля typeChecker выглядит следующим образом:
Проверка на число JS
Strings — Test.assertEquals( isAN(«2») , false) Booleans — Test.assertEquals( isAN(true) , false) Others — Test.assertEquals( isAN(null) , false) Numbers — Test.assertEquals( isAN(2) , true) new Number()s — Test.assertEquals( isAN(Number(1)) , true) NaN Number()s — Test.assertEquals( isAN(NaN), false)
Number.isInteger()
Метод Number.isInteger() определяет, является ли переданное значение целым числом.
Интерактивный пример
Синтаксис
Number.isInteger(value)
Параметры
Значение, проверяемое на целочисленность.
Возвращаемое значение
Boolean сообщающий о том, является ли переданное значение целочисленным числом.
Описание
Если целевое значение является целым числом, возвращает true . Если значение NaN или Infinity , то возвращает false . Метод также возвращает true , если это вещественное число с точкой, которое может быть представлено в целочисленном виде.
Примеры
.isInteger(0); // true Number.isInteger(1); // true Number.isInteger(-100000); // true Number.isInteger(99999999999999999999999); // true Number.isInteger(0.1); // false Number.isInteger(Math.PI); // false Number.isInteger(NaN); // false Number.isInteger(Infinity); // false Number.isInteger(-Infinity); // false Number.isInteger("10"); // false Number.isInteger(true); // false Number.isInteger(false); // false Number.isInteger([1]); // false Number.isInteger(5.0); // true Number.isInteger(5.000000000000001); // false Number.isInteger(5.0000000000000001); // true
Полифил
.isInteger = Number.isInteger || function (value) return ( typeof value === "number" && isFinite(value) && Math.floor(value) === value ); >;
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-number.isinteger |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- Объект Number , которому принадлежит этот метод.
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 7 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
- Product help
- Report an issue
Our communities
Developers
- Web Technologies
- Learn Web Development
- MDN Plus
- Hacks Blog
- Website Privacy Notice
- Cookies
- Legal
- Community Participation Guidelines
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.