sfcode An Online Competing and Development Environment

is-extendable

> Returns true if a value is any of the object types: array, regexp, plain object, function or date. This is useful for determining if a value can be extended, e.g. "can the value have keys?"

# Install

Install with npm

$ npm i is-extendable --save

# Usage

var isExtendable = require('is-extendable');

Returns true if the value is any of the following:

- `array`
- `regexp`
- `plain object`
- `function`
- `date`
- `error`

# Notes

All objects in JavaScript can have keys, but it's a pain to check for this, since we ether need to verify that the value is not `null` or `undefined` and:

- the value is not a primitive, or
- that the object is an `object`, `function`

Also note that an `extendable` object is not the same as an extensible object, which is one that (in es6) is not sealed, frozen, or marked as non-extensible using `preventExtensions`.

# Related projects

- assign-deep: Deeply assign the enumerable properties of source objects to a destination object.
- extend-shallow: Extend an object with the properties of additional objects. node.js/javascript util.
- isobject: Returns true if the value is an object and not an array or null.
- is-plain-object: Returns true if an object was created by the `Object` constructor.
- is-equal-shallow: Does a shallow comparison of two objects, returning false if the keys or values differ.
- kind-of: Get the native type of a value.

# Running tests

Install dev dependencies:

$ npm i -d && npm test

# Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue

# Author

Jon Schlinkert

- github/jonschlinkert
- twitter/jonschlinkert

# License

Copyright © 2015 Jon Schlinkert Released under the MIT license.

This file was generated by verb-cli on July 04, 2015.