Для того, чтобы определить, является ли значение переменной числом или нет, можно использовать встроенную функцию 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() говорит, что это значение типа "строка".