forked from hero/www_hero
54 lines
1.1 KiB
Markdown
54 lines
1.1 KiB
Markdown
|
# defined
|
||
|
|
||
|
return the first argument that is `!== undefined`
|
||
|
|
||
|
[![browser support](http://ci.testling.com/substack/defined.png)](http://ci.testling.com/substack/defined)
|
||
|
|
||
|
[![build status](https://secure.travis-ci.org/substack/defined.png)](http://travis-ci.org/substack/defined)
|
||
|
|
||
|
Most of the time when I chain together `||`s, I actually just want the first
|
||
|
item that is not `undefined`, not the first non-falsy item.
|
||
|
|
||
|
This module is like the defined-or (`//`) operator in perl 5.10+.
|
||
|
|
||
|
# example
|
||
|
|
||
|
``` js
|
||
|
var defined = require('defined');
|
||
|
var opts = { y : false, w : 4 };
|
||
|
var x = defined(opts.x, opts.y, opts.w, 100);
|
||
|
console.log(x);
|
||
|
```
|
||
|
|
||
|
```
|
||
|
$ node example/defined.js
|
||
|
false
|
||
|
```
|
||
|
|
||
|
The return value is `false` because `false` is the first item that is
|
||
|
`!== undefined`.
|
||
|
|
||
|
# methods
|
||
|
|
||
|
``` js
|
||
|
var defined = require('defined')
|
||
|
```
|
||
|
|
||
|
## var x = defined(a, b, c...)
|
||
|
|
||
|
Return the first item in the argument list `a, b, c...` that is `!== undefined`.
|
||
|
|
||
|
If all the items are `=== undefined`, return undefined.
|
||
|
|
||
|
# install
|
||
|
|
||
|
With [npm](https://npmjs.org) do:
|
||
|
|
||
|
```
|
||
|
npm install defined
|
||
|
```
|
||
|
|
||
|
# license
|
||
|
|
||
|
MIT
|