Как на JavaScript проверить, что переменная является числом?

Взгляните на это решение:

function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}

Эта короткая функция возвращает значение true, если n имеет вид десятичного числа не зависимо от его типа. Это может быть как объект Number, так и строка, содержащая числовое значение. Кроме всех Ваших вариантов это значение также может иметь экспоненциальный формат, например isNumber(»5e8») вернёт true, так что будьте осторожны! Фактически, в эту функцию можно передать всё, что угодно, только учитывайте корреляцию типов (Например, хотя 1==true, но ведь true не является числом).