- 3 ways to check if variable is a number in JavaScript
- 1) Using isNan()
- Limitations:
- 2) Using typeof()
- 3) Using Number.isFinite()
- Conclusion:
- Top comments (8)
- Check if Sring Is a Number in JavaScript
- Use the isNaN() Function to Check Whether a Given String Is a Number or Not in JavaScript
- Use the + Operator to Check Whether a Given String Is a Number or Not in JavaScript
- Use the parseInt() Function to Check Whether a Given String Is a Number or Not in JavaScript
- Use the Number() Function to Check Whether a Given String Is a Number or Not in JavaScript
- Use the Regular Expressions to Check Whether a Given String Is a Number or Not in JavaScript
- Related Article — JavaScript String
- Rukovodstvo
- статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
- JavaScript: проверьте, является ли переменная числом
- Введение JavaScript — это язык с динамической типизацией, что означает, что интерпретатор определяет тип переменной во время выполнения. На практике это позволяет нам использовать одну и ту же переменную для хранения разных типов данных в одном и том же коде. Это также означает, что без документации и согласованности мы не всегда знаем тип переменной в нашем коде, когда мы ее используем. Работа со строкой или массивом, когда мы ожидаем числа, может привести к странным результатам в нашем коде. В этой статье мы рассмотрим вариометр.
- Вступление
- Использование функции Number.isFinite ()
- Использование функции Number.isNaN ()
- Использование функции typeof ()
- Заключение
3 ways to check if variable is a number in JavaScript
I was building a form the other day in Vue and I had to write number validation for the field so had to write the logic to check whether the input value is number or not. I wanted to list out the few ways I learnt which might be helpful to others.
NOTE: In JavaScript, special values like NaN , Infinity and -Infinity are numbers too — though, we’ll be ignoring those values.
1) Using isNan()
The isNaN() determines whether a value is NaN or not. We can take advantage of this to determine whether a variable is number type or not.
var numberOfpushUpsToday = 34; if(!isNaN(numberOfpushUpsToday)) console.log('It is a number') > else console.log('It is not a number') >
!isNaN(34) // returns true !isNaN('34') // returns true !isNaN('Hello') // returns false !isNaN(true) // returns true !isNaN(false) // returns true !isNaN('undefined') // returns false
Limitations:
1) It returns true for the Boolean values because the Boolean values are converted to numbers 0 and 1 accordingly so it would be misleading sometimes.
2) We have same issue for the null value as well. It returns true and hence one has to be careful while writing the code.
2) Using typeof()
num = 45 strng = '34' typeof num // returns 'number' typeof strng // returns "string" typeof undefined // returns "undefined" typeof null // returns "object"
If the variable is type number, it would return the string number . We can use this to determine if the variable is number type.
var numberOfpushUpsToday = 34; if(typeof numberOfpushUpsToday === 'number' ) console.log('It is a number') > else console.log('It is not a number') >
The typeof() performs much better than isNaN() . It correctly determines that a string variable, null and Boolean values are not numbers.
3) Using Number.isFinite()
The function isFinite() determines if the passed value is finite. The arguments are first converted to numbers and then checks if the value is finite and hence this is the most best way among all the methods mentioned above.
Number.isFinite(34) // returns true Number.isFinite('Hello') // returns false Number.isFinite(undefined) // returns false Number.isFinite(true) // returns false Number.isFinite(null) // returns false
var numberOfpushUpsToday = 34; if(Number.isFinite(numberOfpushUpsToday) ) console.log('It is a number') > else console.log('It is not a number') >
Conclusion:
Although these methods can get tricky with Boolean values, undefined and null , they are helpful in solving some problems in day to day life. One just have to be careful while writing the code according to their needs. And that sums it up.
Thank you..
Comment below if you have any feedback or thoughts.
Top comments (8)
I’m a self-taught dev focused on websites and Python development. My friends call me the «Data Genie». When I get bored, I find tech to read about, write about and build things with.
Check if Sring Is a Number in JavaScript
- Use the isNaN() Function to Check Whether a Given String Is a Number or Not in JavaScript
- Use the + Operator to Check Whether a Given String Is a Number or Not in JavaScript
- Use the parseInt() Function to Check Whether a Given String Is a Number or Not in JavaScript
- Use the Number() Function to Check Whether a Given String Is a Number or Not in JavaScript
- Use the Regular Expressions to Check Whether a Given String Is a Number or Not in JavaScript
Number in the programming language is the data type that denotes integers, floats, etc. Strings represent all characters rather than just numeric values. Strings can contain numerical values.
We will check whether a given string is a number or not in this article.
Use the isNaN() Function to Check Whether a Given String Is a Number or Not in JavaScript
The isNaN() function determines whether the given value is a number or an illegal number (Not-a-Number). The function outputs as True for a NaN value and returns False for a valid numeric value.
console.log(isNaN('195')) console.log(isNaN('boo')) console.log(isNaN('100px'))
If we want to create a function that returns true for a valid value, we can always do that by creating a function that negates the output of the isNaN() function.
function isNum(val) return !isNaN(val) > console.log(isNum('aaa')); console.log(isNum('13579')); console.log(isNum('-13'));
Now this function named isNum() will return true for a valid numeric value.
Use the + Operator to Check Whether a Given String Is a Number or Not in JavaScript
The + operator returns the numeric value of the string, or NaN , if the string isn’t purely numeric characters.
console.log(+'195') console.log(+'boo')
Use the parseInt() Function to Check Whether a Given String Is a Number or Not in JavaScript
The parseInt() function parses a string and then returns an integer. It returns NaN when it is unable to extract numbers from the string.
console.log(parseInt('195')) console.log(parseInt('boo'))
Use the Number() Function to Check Whether a Given String Is a Number or Not in JavaScript
The Number() function converts the argument to a number representing the object’s value. If it fails to convert the value to a number, it returns NaN.
We can use it with strings also to check whether a given string is a number or not.
console.log(Number('195')) console.log(Number('boo'))
Use the Regular Expressions to Check Whether a Given String Is a Number or Not in JavaScript
Regular expressions are an object that describes a pattern of characters. These can be used to search the pattern, make changes to them, add, delete, etc.
We can use such patterns to check whether a string contains a number or not.
function isNumeric(val) return /^-?\d+$/.test(val); > console.log(isNumeric('aaa')); console.log(isNumeric('13579')); console.log(isNumeric('-13'));
Related Article — JavaScript String
Rukovodstvo
статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
JavaScript: проверьте, является ли переменная числом
Введение JavaScript — это язык с динамической типизацией, что означает, что интерпретатор определяет тип переменной во время выполнения. На практике это позволяет нам использовать одну и ту же переменную для хранения разных типов данных в одном и том же коде. Это также означает, что без документации и согласованности мы не всегда знаем тип переменной в нашем коде, когда мы ее используем. Работа со строкой или массивом, когда мы ожидаем числа, может привести к странным результатам в нашем коде. В этой статье мы рассмотрим вариометр.
Вступление
JavaScript — это язык с динамической типизацией, что означает, что интерпретатор определяет тип переменной во время выполнения. На практике это позволяет нам использовать одну и ту же переменную для хранения разных типов данных в одном и том же коде. Это также означает, что без документации и согласованности мы не всегда знаем тип переменной в нашем коде, когда мы ее используем.
Работа со строкой или массивом, когда мы ожидаем числа, может привести к странным результатам в нашем коде. В этой статье мы рассмотрим различные функции, которые могут помочь определить, является ли переменная, которую мы используем, числом.
Строки, содержащие числа вроде «10», не принимаются. В JavaScript специальные значения, такие как NaN , Infinity и -Infinity , тоже являются числами, однако мы будем игнорировать эти значения.
С учетом этих требований лучше всего использовать функцию isFinite() из встроенного объекта Number
Однако разработчики обычно использовали для этой цели другие функции, в частности Number.isNaN() и функцию typeof()
Создадим несколько переменных для тестирования:
let intVar = 2; let floatVar = 10.5; let stringVar = '4'; let nanVar = NaN; let infinityVar = Infinity; let nullVar = null; let undefinedVar = undefined;
Использование функции Number.isFinite ()
Функция Number.isFinite() проверяет, является ли переменная числом, но также проверяет, является ли это конечным значением. Следовательно, он возвращает false для чисел NaN , Infinity или -Infinity .
Давайте проверим это на переменных, которые мы определили выше:
> Number.isFinite(intVar); true > Number.isFinite(floatVar); true > Number.isFinite(stringVar); false > Number.isFinite(nanVar); false > Number.isFinite(infinityVar); false > Number.isFinite(nullVar); false > Number.isFinite(undefined); false
Это именно то, что мы хотели. Специальные нефинитные числа игнорируются, как и любые переменные, не являющиеся числовыми.
Если вы хотите проверить, является ли переменная числом, лучше всего использовать Number.isFinite() .
Использование функции Number.isNaN ()
Стандартный объект Number имеет метод isNaN() Он принимает один аргумент и определяет, равно ли его значение NaN . Поскольку мы хотим проверить, является ли переменная числом, мы будем использовать оператор not ! , в наших чеках.
Теперь проверим, могут ли оператор not и Number.isNaN() фильтровать только числа:
> !Number.isNaN(intVar); true > !Number.isNaN(floatVar); true > !Number.isNaN(stringVar); true # Wrong > !Number.isNaN(nanVar); false > !Number.isNaN(infinityVar); true # Wrong > !Number.isNaN(nullVar); true # Wrong > !Number.isNaN(undefinedVar); true # Wrong
Этот метод является довольно разрешительным, поскольку он принимает значения, которые вообще не являются числами. Этот метод лучше всего подходит, когда вы знаете, что у вас есть число и хотите проверить, является ли оно NaN , а не для общей проверки числа.
Использование функции typeof ()
Функция typeof() — это глобальная функция, которая принимает переменную или значение в качестве аргумента и возвращает строковое представление своего типа. Всего у JavaScript 9 типов:
- undefined
- boolean
- number
- string
- bigint
- symbol
- object
- null ( typeof() отображается как объект)
- function (особый тип объекта)
Чтобы проверить, является ли переменная числом, нам просто нужно проверить, является ли значение, возвращаемое typeof() , «number» . Давайте попробуем это на тестовых переменных:
> typeof(intVar) == 'number'; true > typeof(floatVar) == 'number'; true > typeof(stringVar) == 'number'; false > typeof(nanVar) == 'number'; true # Wrong > typeof(infinityVar) == 'number'; true # Wrong > typeof(nullVar) == 'number'; false > typeof(undefined) == 'number'; false
Функция typeof() работает намного лучше, чем Number.isNaN() . Он правильно определяет, что строковая переменная, null и undefined не являются числами. Однако он возвращает true для NaN и Infinity .
Хотя это технически правильный результат, NaN и Infinity являются специальными числовыми значениями, и в большинстве случаев мы бы предпочли их игнорировать.
Заключение
В этой статье мы узнали, как проверить, является ли переменная в JavaScript числом. Функция Number.isNaN() подходит только в том случае, если мы знаем, что наша переменная является числом, и нам нужно проверить, является ли она конкретно NaN или нет.
Функция typeof() подходит, если ваш код может работать с NaN , Infinity или -Infinity а также с другими числами.
Метод Number.isFinite() захватывает все конечные числа и наиболее соответствует нашим требованиям.
Licensed under CC BY-NC-SA 4.0