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

