empty-value
Version:
Check if a given value is empty in JS extending his "truthy" and "falsy" nature
72 lines (60 loc) • 1.63 kB
Markdown
# empty-value
:package: Check if a given value is empty in JS extending his "truthy" and "falsy" nature
### Status
[](https://travis-ci.org/juliomatcom/empty-value)
### Installation
Using **npm**
```sh
npm install --save empty-value
```
##### The following values are considered to be empty:
- NaN
- 0 (0 as an integer)
- 0.0 (0 as a float)
- "0" (0 as a string)
- null
- false
- undefined
- "" (an empty string)
- " " (an string with only spaces)
- array( ) / \[ \] (an empty array)
- { } (an empty object / no direct keys)
### Usage
```javascript
var empty = require('empty-value');
empty(true) //false
empty(12345) //false
empty(-12345) //false
empty('Lorem Ipsum is simply dummy text') //false
empty([1, 2, 3]) //false
empty({ foo: 'bar' }) //false
empty('{ "id" : 1 }') //false
empty(function () { }) //false
empty(NaN) //true
empty(0) //true
empty(0.0) //true
empty(null) //true
empty(false) //true
empty(undefined) //true
empty('0') //true
empty(''); //true
empty(' '); //true
empty([]) //true
empty({ }) //true
var proto = { foo: 'bar' };
var obj = Object.create(proto);
empty(obj) //true Note: foo is not a directly property of obj
```
##### Using hooks
If *empty* can't guess the correct answer (IE: value is a function) before return FALSE you could use your own hook. See example bellow:
```javascript
var myEmptyHook = function (value) {//i don't like functions
return typeof value === 'function' ? true : false;
}
var func = function () {
return 'bar';
}
empty(func, myEmptyHook); //true
```
###### License
MIT