function isNumeric return isNaN parseFloat isFinite isFinite аргумент

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
function isNumeric(n) {
return !isNaN( parseFloat(n) && isFinite(n) );
}
// - isFinite(n) - аргумент к числу и возвращает TRUE (если это не NaN/Infinity/-Infinity). Правая часть отсеивает заведомо не-числа, но оставить значение true/false/null/'', так как они корректно преобразуются в числа 1/0/0/0
// - parseFloat(n) - левая часть для значение - true/false/null/'' вернет NaN, таким образом мы их отсеем. Алгоритм работы parseFloat - преобразует аргумент к строке('true'), а затем считывает из него число, при этом пустая строка дает NaN
// - в результате отсеивается всё, кроме строк-чисел и обычных чисел
function getType(elem) {
return {}.toString.call(elem).slice(8, -1);
}