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.00
# lodash.isnumber
1
2
The 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.
3
4
## Package Information
5
6
- **Package Name**: lodash.isnumber
7
- **Package Type**: npm
8
- **Language**: JavaScript
9
- **Installation**: `npm install lodash.isnumber`
10
11
## Core Imports
12
13
```javascript
14
const isNumber = require('lodash.isnumber');
15
```
16
17
ES6/ESM:
18
19
```javascript
20
import isNumber from 'lodash.isnumber';
21
```
22
23
## Basic Usage
24
25
```javascript
26
const isNumber = require('lodash.isnumber');
27
28
// Primitive numbers
29
isNumber(42); // => true
30
isNumber(3.14); // => true
31
isNumber(NaN); // => true
32
isNumber(Infinity); // => true
33
34
// Number objects
35
isNumber(new Number(42)); // => true
36
37
// Non-numbers
38
isNumber('42'); // => false
39
isNumber([1, 2, 3]); // => false
40
isNumber({a: 1}); // => false
41
isNumber(null); // => false
42
```
43
44
## Capabilities
45
46
### Number Type Checking
47
48
Checks if a value is classified as a Number primitive or object. Follows ECMAScript 5 specification where NaN is considered a number type.
49
50
```javascript { .api }
51
/**
52
* Checks if value is classified as a Number primitive or object.
53
* Note: NaN is considered a number per ECMAScript 5 specification.
54
*
55
* @param {*} value - The value to check
56
* @returns {boolean} - Returns true if value is a number, else false
57
*/
58
function isNumber(value);
59
```
60
61
**Behavior:**
62
- Returns `true` for primitive numbers: `0`, `42`, `3.14`, `Infinity`, `-Infinity`, `NaN`
63
- Returns `true` for Number objects: `new Number(0)`, `new Number(42)`
64
- Returns `false` for all other types including:
65
- Strings (even numeric strings like `"42"`)
66
- Arrays, objects, functions
67
- Boolean values (`true`, `false`)
68
- `null` and `undefined`
69
- Dates, regular expressions
70
71
**Examples:**
72
73
```javascript
74
const isNumber = require('lodash.isnumber');
75
76
// Primitive numbers - all return true
77
isNumber(0); // => true
78
isNumber(42); // => true
79
isNumber(-17); // => true
80
isNumber(3.14159); // => true
81
isNumber(NaN); // => true (per ECMAScript spec)
82
isNumber(Infinity); // => true
83
isNumber(-Infinity); // => true
84
85
// Number objects - return true
86
isNumber(new Number(0)); // => true
87
isNumber(new Number(42)); // => true
88
isNumber(new Number(NaN)); // => true
89
90
// Non-numbers - all return false
91
isNumber(); // => false (undefined)
92
isNumber(null); // => false
93
isNumber(false); // => false
94
isNumber(true); // => false
95
isNumber('42'); // => false (numeric string)
96
isNumber('hello'); // => false
97
isNumber([1, 2, 3]); // => false
98
isNumber({a: 1}); // => false
99
isNumber(new Date()); // => false
100
isNumber(/regex/); // => false
101
isNumber(function() {}); // => false
102
103
// Edge cases
104
isNumber(+"42"); // => true (string coerced to number)
105
isNumber(parseInt("42")); // => true (parsed to number)
106
isNumber(parseFloat("3.14")); // => true (parsed to number)
107
```
108
109
**Implementation Details:**
110
- Uses `typeof value == 'number'` to check for primitive numbers
111
- Uses `Object.prototype.toString.call(value) == '[object Number]'` to detect Number objects
112
- Handles cross-realm/frame Number objects correctly
113
- No dependencies on other lodash functions