Merge pull request #878 from 30-seconds/is-negative-zero

[FEATURE] add isNegativeZero
This commit is contained in:
Angelos Chalaris
2018-11-21 19:20:35 +02:00
committed by GitHub
3 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,14 @@
### isNegativeZero
Checks if the given value is equal to negative zero (`-0`).
Checks whether a passed value is equal to `0` and if `1` divided by the value equals `-Infinity`.
```js
const isNegativeZero = val => val === 0 && 1 / val === -Infinity;
```
```js
isNegativeZero(-0); // true
isNegativeZero(0); // false
```

View File

@ -145,6 +145,7 @@ isEmpty:type,array,object,string,beginner
isEven:math,beginner
isFunction:type,function,beginner
isLowerCase:string,utility,beginner
isNegativeZero:math,utility,beginner
isNil:type,beginner
isNull:type,beginner
isNumber:type,math,beginner

View File

@ -0,0 +1,15 @@
const expect = require('expect');
const { isNegativeZero } = require('._30s.js');
test('isNegativeZero is a Function', () => {
expect(isNegativeZero).toBeInstanceOf(Function);
});
test('0 is not a -0', () => {
expect(isNegativeZero(0)).toBeFalsy();
});
test('-0 is a negative zero', () => {
expect(isNegativeZero(-0)).toBeTruthy();
});
test('1 is not a negative zero', () => {
expect(isNegativeZero(1)).toBeFalsy();
});