### S-IS

`1.4.0`
Need help reading this?

### is

executor of checks to delegate a data for checking have a ability use upper case when string annotation name checks used

is(check: String, any: any): Boolean
Parameters
check `(String)` it can be name of branch/check
any `(any)` it can be name of branch/check
Returns
`Boolean`:
Example

    // the same
    is('platform', 'browser');
    is.platform('browser');
    is.platform.browser();

### is.typeof

typeof return name of the data type it can return all 10 data types plus new data types of ES6.

is.typeof(data: any): String
Parameters
data `(any)`
Returns
`String`:
Example

    is.typeof([]);      // => 'array'
    is('typeof', []);   // => 'array'

### is.nan

It determine only NaN

is.nan(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.nan(NaN);        // => true
    is('NaN', NaN);     // => true
    is('NaN', 'NaN');   // => false

### is.infinity

It determine only infinity's

is.infinity(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.infinity(-Infinity);                     // => true
    is('Infinity', Infinity);                   // => true
    is('Infinity', 9999999*9999999*9999999);    // => true

### is.null

It determine only null

is.null(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.null(null);      // => true
    is('null', null);   // => true
    // otherwise false

### is.number

It determine only numbers (like a native typeof)

is.number(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.number(1);         // => true
    is.number(NaN);       // => true
    is('number', null);   // => false

### is.string

It determine only strings

is.string(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.string('');          // => true
    is('string', 'null');   // => true
    is('string', []);       // => false

### is.boolean

It determine only booleans

is.boolean(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.boolean(true);          // => true
    is('boolean', false);      // => true
    // otherwise false

### is.function

It determine only functions

is.function(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.function(Function);      // => true
    is('function', Function);   // => true

### is.array

It determine only array

is.array(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.array([]);           // => true
    is('array', [1,2]);     // => true
    is('array', '1,2');     // => false

### is.object

It determine only objects. Except null and array

is.object(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.object({});          // => true
    is('object', {x:1});    // => true
    is('object', []);       // => false
    is('object', null);     // => false

### is.undefined

It determine only undefined

is.undefined(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.undefined(undefined);    // => true
    is('undefined', void(0));   // => true

### is.defined

always success except undefined

is.defined(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.defined(null);       // => true
    is('defined', 0);       // => true
    is('defined', void(0)); // => false

### is._object

It determine only objects of customers (developers)

is._object(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is._object({});                     // => true
    is('_object', {x:1});               // => true
    is('_object', new (class q {}));    // => true
    is('_object', null);                // => false
    is('_object', new Date);            // => false
    is('_object', new Error);           // => false

### is._number

It determine only numbers not NaN or Infinity or NUMBER more than possible to consider

is._number(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is._number(1);         // => true
    is._number(NaN);       // => false
    is('_number', null);   // => false
    is('_number', 9999999*9999999*9999999);   // => false

### is.class

It determine classes.

is.class(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    class q {}
    class q1 extends q {}
    function Class (){}
    is.class( Class );      // => false
    is.class( q );          // => true
    is('Class', q1 );       // => true

### is._equal

strict comparison to equivalent between arguments

* circular structure cannot be equaled. It returns false

is._equal(first: any, second: any): Boolean
Parameters
first `(any)`
second `(any)`
Returns
`Boolean`:
Example

    is('_equal', [1,{x:2}],[1,{x:1}]);  // => false
    is('_equal', [1,{x: Function}],[1,{x:function(){}}]);// => false
    is('_equal', [1,{x:'1'}],[1,{x:1}]);// => false
    is('_equal', [1,{x:1}],[1,{x:1}]);  // => true
    is._equal();                        // => true becose (undefined, undefined)
    is._equal(NaN, NaN);                // => true

### is.equal

comparison to equivalent between arguments ignores difference in functions ignores data types difference if it equivalent (1,'1')

* circular structure cannot be equaled. It returns false

is.equal(first: any, second: any): Boolean
Parameters
first `(any)`
second `(any)`
Returns
`Boolean`:
Example

    is('equal', [1,{x:2}],[1,{x:1}]);  // => false
    is('equal', [1,{x:'1'}],[1,{x:1}]);// => true
    is('equal', [1,{x:1}],[1,{x:1}]);  // => true
    is.equal();                        // => true becose (undefined, undefined)
    is.equal(NaN, NaN);                // => true
    is('equal', [1,{x: Function}],[1,{x:function(){}}]);// => true

### is.empty

check the data that may contain child elements. Otherwise returns false.

* can work not safe and throws an error when data is incorrect.

is.empty(data: any, notSafe: Boolean?): Boolean
Parameters
data `(any)` without "notSafe" can check any data type
notSafe `(Boolean? = `false`)`
Returns
`Boolean`:
Example

    is.empty([]);        // true
    is('empty', '');     // true
    is('empty', {});     // true
    is.empty([1]);       // true
    is('empty', '[]');   // true

### is.finite

It determine only numbers of possible to consider

is.finite(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.finite(1);         // => true
    is.finite(NaN);       // => false
    is('finite', null);   // => false
    is('finite', 9999999*9999999*9999999);   // => false

### is.countable

It determine value can be involved in mathematical operations

is.countable(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.countable(1);         // => true
    is.countable('1');       // => true
    is.countable(true);      // => true
    is.countable(NaN);       // => false
    is('countable', null);   // => false
    is('countable', 9999999*9999999*9999999);   // => false

### is.date

It determine object of native Date ( some things like (new Date()) instanceof Date )

is.date(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.date(new Date);      // => true
    is('date', new Date);   // => true

### is.error

It determine object of error

is.error(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.error(new Error);        // => true
    is('error', new TypeError); // => true

### is.regexp

It determine RegExp.

is.regexp(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.regexp(new RegExp);  // => true
    is('RegExp', /1/g);     // => true
    is('regexp', '/1/g');   // => false because it isn't RegExp

### is.argument

It determine object arguments.

is.argument(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    var args; // get object arguments
    (function(){ args = arguments; })();
    is.argument(args);          // => true
    is('argument', args);       // => true
    is('argument', []);         // => false

### is.symbol

It determine instance Symbol. (safety for es5)

is.symbol(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.symbol(Symbol());     // => true
    is('symbol', Symbol());  // => true

### is.promise

It determine instance Promise.

is.promise(data: any): Boolean
Parameters
data `(any)`
Returns
`Boolean`:
Example

    is.promise(new Promise(function(){}));  // => true
    is('promise', q.defer().promise);       // => true
    is('promise', {then: function(){}});    // => true

### is.support.symbol

It determine platform support for Symbol (save)

is.support.symbol(): Boolean
Returns
`Boolean`:
Example

    is('support', 'symbol');
    is.support('symbol');
    is.support.symbol();

### is.support.promise

It determine platform support for Promise (save)

is.support.promise(): Boolean
Returns
`Boolean`:
Example

    is('support', 'promise');
    is.support('promise');
    is.support.promise();

### is.platform.node

It determine platform Node.js (save)

is.platform.node(): Boolean
Returns
`Boolean`:
Example

    is('platform', 'node'); // => true
    is.platform('node');    // => true
    is.platform.node();     // => true

### is.platform.browser

It determine platform browser (save)

is.platform.browser(): Boolean
Returns
`Boolean`:
Example

    is('platform', 'browser'); // => true
    is.platform('browser');    // => true
    is.platform.browser();     // => true

### exports

defination on platforms (both variants on platform like Electron)

bower i --save s-is

npm i --save s-is

exports
Example

    window.is                   // in browser

    var is = require('s-is')    // in Node.js