is-number
Advanced tools
Comparing version 1.0.0 to 1.1.0
@@ -11,3 +11,5 @@ /*! | ||
module.exports = function isNumber(n) { | ||
return !!(+n) || n === 0 || n === '0'; | ||
return (!!(+n) && !Array.isArray(n)) && isFinite(n) | ||
|| n === '0' | ||
|| n === 0; | ||
}; |
{ | ||
"name": "is-number", | ||
"description": "Returns true if the value is a number. comprehensive tests.", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"homepage": "https://github.com/jonschlinkert/is-number", | ||
@@ -6,0 +6,0 @@ "author": { |
@@ -8,3 +8,2 @@ # is-number [![NPM version](https://badge.fury.io/js/is-number.svg)](http://badge.fury.io/js/is-number) | ||
## Install | ||
## Install with [npm](npmjs.org) | ||
@@ -25,70 +24,53 @@ | ||
See the [tests](./test.js) for more examples. | ||
```js | ||
isNumber(5e3); | ||
isNumber(0xff); | ||
isNumber(-1.1); | ||
isNumber(0); | ||
isNumber(1); | ||
isNumber(1.1); | ||
isNumber(10); | ||
isNumber(10.10); | ||
isNumber(100); | ||
isNumber('-1.1'); | ||
isNumber('0'); | ||
isNumber('012'); | ||
isNumber('0xff'); | ||
isNumber('1'); | ||
isNumber('1.1'); | ||
isNumber('10'); | ||
isNumber('10.10'); | ||
isNumber('100'); | ||
isNumber('5e3'); | ||
isNumber(parseInt('012')); | ||
isNumber(parseFloat('012')); | ||
isNumber(Infinity); | ||
isNumber('Infinity'); | ||
isNumber(5e3) //=> 'true' | ||
isNumber(0xff) //=> 'true' | ||
isNumber(-1.1) //=> 'true' | ||
isNumber(0) //=> 'true' | ||
isNumber(1) //=> 'true' | ||
isNumber(1.1) //=> 'true' | ||
isNumber(10) //=> 'true' | ||
isNumber(10.10) //=> 'true' | ||
isNumber(100) //=> 'true' | ||
isNumber('-1.1') //=> 'true' | ||
isNumber('0') //=> 'true' | ||
isNumber('012') //=> 'true' | ||
isNumber('0xff') //=> 'true' | ||
isNumber('1') //=> 'true' | ||
isNumber('1.1') //=> 'true' | ||
isNumber('10') //=> 'true' | ||
isNumber('10.10') //=> 'true' | ||
isNumber('100') //=> 'true' | ||
isNumber('5e3') //=> 'true' | ||
isNumber(parseInt('012')) //=> 'true' | ||
isNumber(parseFloat('012')) //=> 'true' | ||
``` | ||
### Infinity | ||
### False | ||
Infinity can be [treated as a number][infinity] in mathematics. Here, it's a number - primarily because 99% of use cases do not require checking for it, but doing so [makes our function 20-35% slower](./benchmark/code/infinity.js) in common use cases. | ||
See the [tests](./test.js) for more examples. | ||
If you want `Infinity` to be `false`, just do: | ||
```js | ||
var isNumber = require('is-number'); | ||
function isNum(val) { | ||
return isNumber(val) && isFinite(val); | ||
} | ||
isNumber('foo') //=> 'false' | ||
isNumber([1]) //=> 'false' | ||
isNumber([]) //=> 'false' | ||
isNumber(function () {}) //=> 'false' | ||
isNumber(Infinity) //=> 'false' | ||
isNumber(NaN) //=> 'false' | ||
isNumber(new Array('abc')) //=> 'false' | ||
isNumber(new Array(2)) //=> 'false' | ||
isNumber(new Buffer('abc')) //=> 'false' | ||
isNumber(null) //=> 'false' | ||
isNumber(undefined) //=> 'false' | ||
isNumber({abc: 'abc'}) //=> 'false' | ||
``` | ||
### false | ||
## Run tests | ||
```js | ||
isNumber('3abc'); | ||
isNumber('abc'); | ||
isNumber('abc3'); | ||
isNumber('null'); | ||
isNumber('undefined'); | ||
isNumber([1, 2, 3]); | ||
isNumber(function () {}); | ||
isNumber(new Buffer('abc')); | ||
isNumber(null); | ||
isNumber(undefined); | ||
isNumber({abc: 'abc'}); | ||
isNumber({}); | ||
isNumber([]); | ||
``` | ||
Install dev dependencies: | ||
## Run tests | ||
```bash | ||
npm test | ||
npm i -d && npm test | ||
``` | ||
@@ -95,0 +77,0 @@ |
Trivial Package
Supply chain riskPackages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.
Found 1 instance in 1 package
3608
12
0
92