is-not-defined
v1.0.1
Published
checks if foo is not defined, i.e. undefined, null, an empty string, array, object or NaN
Downloads
13
Readme
is-not-defined
checks if foo is not defined, i.e. undefined, null, an empty string, array, object or NaN
This is a fork of fibo/not-defined to add browser compatibility
Installation | Usage | Annotated source | License
Installation
npm install is-not-defined
Usage
This snippet of code
const isNotDefined = require("is-not-defined");
if (isNotDefined(foo)) {
// do something, usually throw a TypeError
}
is equivalent to the following pseudocode
if (foo is not defined, i.e. is null, undefined, NaN, an empty string, array or object) {
// do something, usually throw a TypeError
}
You can also use a shorter but still semantic form like
const no = require("is-not-defined");
if (no(foo)) {
// do something, usually throw a TypeError
}
Follows a list of tested examples
no(); // true
no(undefined); // true
no(null); // true
no(""); // true
no([]); // true
no({}); // true
no(NaN); // true
no(0); // false
no(true); // false
no(false); // false
no("string"); // false
no(["foo"]); // false
no({ foo: true }); // false
no(42); // false
no(Infinity); // false
no(function () {
return 1;
}); // false
Pros
- Type less.
- Better readability (even your boss will understand your code ^:).
- Can save bytes in your builds.
- Easier to autocomplete in editors (for instance easier than
typeof foo === 'undefined'
).
Annotated source
This is my first npm package written using [KISS Literate Programming][klp].
function isNotDefined(x){return x==null||(typeof x == 'number'&&isNaN(x))||(x.length<1&&typeof x!='function')||(typeof x=='object'&&x.constructor.name=='Object'&&Object.keys(x).length<1)}try{module.exports=isNotDefined}catch(e){}
Snippet length<1
is used instead of equivalent length==0
to save two characters, considering it is used twice.
License
MIT