The lodash method _.isNumber exported as a module for checking if a value is a number
npx @tessl/cli install tessl/npm-lodash--isnumber@2.4.0The lodash method _.isNumber exported as a standalone module. Checks if a value is classified as a Number primitive or object, returning true for numeric values including Number objects, and false for all other types.
npm install lodash.isnumberconst isNumber = require('lodash.isnumber');ES6/ESM:
import isNumber from 'lodash.isnumber';const isNumber = require('lodash.isnumber');
// Primitive numbers
isNumber(42); // => true
isNumber(3.14); // => true
isNumber(NaN); // => true
isNumber(Infinity); // => true
// Number objects
isNumber(new Number(42)); // => true
// Non-numbers
isNumber('42'); // => false
isNumber([1, 2, 3]); // => false
isNumber({a: 1}); // => false
isNumber(null); // => falseChecks if a value is classified as a Number primitive or object. Follows ECMAScript 5 specification where NaN is considered a number type.
/**
* Checks if value is classified as a Number primitive or object.
* Note: NaN is considered a number per ECMAScript 5 specification.
*
* @param {*} value - The value to check
* @returns {boolean} - Returns true if value is a number, else false
*/
function isNumber(value);Behavior:
true for primitive numbers: 0, 42, 3.14, Infinity, -Infinity, NaNtrue for Number objects: new Number(0), new Number(42)false for all other types including:
"42")true, false)null and undefinedExamples:
const isNumber = require('lodash.isnumber');
// Primitive numbers - all return true
isNumber(0); // => true
isNumber(42); // => true
isNumber(-17); // => true
isNumber(3.14159); // => true
isNumber(NaN); // => true (per ECMAScript spec)
isNumber(Infinity); // => true
isNumber(-Infinity); // => true
// Number objects - return true
isNumber(new Number(0)); // => true
isNumber(new Number(42)); // => true
isNumber(new Number(NaN)); // => true
// Non-numbers - all return false
isNumber(); // => false (undefined)
isNumber(null); // => false
isNumber(false); // => false
isNumber(true); // => false
isNumber('42'); // => false (numeric string)
isNumber('hello'); // => false
isNumber([1, 2, 3]); // => false
isNumber({a: 1}); // => false
isNumber(new Date()); // => false
isNumber(/regex/); // => false
isNumber(function() {}); // => false
// Edge cases
isNumber(+"42"); // => true (string coerced to number)
isNumber(parseInt("42")); // => true (parsed to number)
isNumber(parseFloat("3.14")); // => true (parsed to number)Implementation Details:
typeof value == 'number' to check for primitive numbersObject.prototype.toString.call(value) == '[object Number]' to detect Number objects