Merge pull request #937 from mkopa/935-isNumber
[FIX] #935 isNumber is wrong for NaN
This commit is contained in:
@ -2,13 +2,15 @@
|
||||
|
||||
Checks if the given argument is a number.
|
||||
|
||||
Use `typeof` to check if a value is classified as a number primitive.
|
||||
Use `typeof` to check if a value is classified as a number primitive.
|
||||
To safeguard against `NaN`, check if `val === val` (as `NaN` has a `typeof` equal to `number` and is the only value not equal to itself).
|
||||
|
||||
```js
|
||||
const isNumber = val => typeof val === 'number';
|
||||
const isNumber = val => typeof val === 'number' && val === val;
|
||||
```
|
||||
|
||||
```js
|
||||
isNumber('1'); // false
|
||||
isNumber(1); // true
|
||||
isNumber('1'); // false
|
||||
isNumber(NaN); // false
|
||||
```
|
||||
|
||||
@ -10,3 +10,6 @@ test('passed argument is a number', () => {
|
||||
test('passed argument is not a number', () => {
|
||||
expect(isNumber('1')).toBeFalsy();
|
||||
});
|
||||
test('passed argument is not a number', () => {
|
||||
expect(isNumber(NaN)).toBeFalsy();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user