Для того, чтобы определить, является ли значение переменной числом или нет, можно использовать встроенную функцию isNaN(). Название isNaN означает «is Not a Number». Соответственно, функция возвращает обратное значение от того, число это или нет, т. е. если значение переменной число, то функция вернет false (ложь), а если не число, то true (истину).
Еще один вариант получить тип значения переменной — функция typeof(). Для числовых значений она возвращает значение number.
Рассмотрим, разные варианты использования:
var oneDig = 5; var twoDig = 15; var digAsString = '4'; var fraction = 3.1; var somestring = 'str'; var nullvalue = null; var ar = [1, 2, 3]; console.log('-----------'); console.log('одна цифра: ' + isNaN(oneDig)); console.log(typeof(oneDig)); console.log('две цифры: ' + isNaN(twoDig)); console.log(typeof(twoDig)); console.log('число как строка: ' + isNaN(digAsString)); console.log(typeof(digAsString)); console.log('десятичная дробь: ' + isNaN(fraction)); console.log(typeof(fraction)); console.log('Текстовое значение: ' + isNaN(somestring)); console.log(typeof(somestring)); console.log('Null: ' + isNaN(nullvalue)); console.log(typeof(nullvalue)); console.log('Array: ' + isNaN(ar)); console.log(typeof(ar));
Результат:
одна цифра: false
number
две цифры: false
number
число как строка: false
string
десятичная дробь: false
number
Текстовое значение: true
string
Null: false
object
Array: true
object
Принципиальное отличие для цифры в виде строки в значении переменной. Функция isNaN() возвращает false, т.е. значение не является нечисловым значением, а функция typeof() говорит, что это значение типа "строка".