deep-equal-x
Version:
node's deepEqual and deepStrictEqual algorithm.
95 lines (79 loc) • 3.06 kB
Markdown
<a
href="https://travis-ci.org/Xotic750/deep-equal-x"
title="Travis status">
<img
src="https://travis-ci.org/Xotic750/deep-equal-x.svg?branch=master"
alt="Travis status" height="18">
</a>
<a
href="https://david-dm.org/Xotic750/deep-equal-x"
title="Dependency status">
<img src="https://david-dm.org/Xotic750/deep-equal-x/status.svg"
alt="Dependency status" height="18"/>
</a>
<a
href="https://david-dm.org/Xotic750/deep-equal-x?type=dev"
title="devDependency status">
<img src="https://david-dm.org/Xotic750/deep-equal-x/dev-status.svg"
alt="devDependency status" height="18"/>
</a>
<a
href="https://badge.fury.io/js/deep-equal-x"
title="npm version">
<img src="https://badge.fury.io/js/deep-equal-x.svg"
alt="npm version" height="18">
</a>
<a
href="https://www.jsdelivr.com/package/npm/deep-equal-x"
title="jsDelivr hits">
<img src="https://data.jsdelivr.com/v1/package/npm/deep-equal-x/badge?style=rounded"
alt="jsDelivr hits" height="18">
</a>
<a
href="https://bettercodehub.com/results/Xotic750/deep-equal-x"
title="bettercodehub score">
<img src="https://bettercodehub.com/edge/badge/Xotic750/deep-equal-x?branch=master"
alt="bettercodehub score" height="18">
</a>
<a
href="https://coveralls.io/github/Xotic750/deep-equal-x?branch=master"
title="Coverage Status">
<img src="https://coveralls.io/repos/github/Xotic750/deep-equal-x/badge.svg?branch=master"
alt="Coverage Status" height="18">
</a>
<a name="module_deep-equal-x"></a>
## deep-equal-x
node's deepEqual and deepStrictEqual algorithm.
<a name="exp_module_deep-equal-x--module.exports"></a>
### `module.exports(actual, expected, [strict])` ⇒ <code>boolean</code> ⏏
Tests for deep equality. Primitive values are compared with the equal
comparison operator ( == ). This only considers enumerable properties.
It does not test object prototypes, attached symbols, or non-enumerable
properties. This can lead to some potentially surprising results. If
`strict` is `true` then Primitive values are compared with the strict
equal comparison operator ( === ).
**Kind**: Exported function
**Returns**: <code>boolean</code> - `true` if `actual` and `expected` are deemed equal,
otherwise `false`.
**See**: https://nodejs.org/api/assert.html
| Param | Type | Description |
| -------- | -------------------- | -------------------------------------------- |
| actual | <code>\*</code> | First comparison object. |
| expected | <code>\*</code> | Second comparison object. |
| [strict] | <code>boolean</code> | Comparison mode. If set to `true` use `===`. |
**Example**
```js
import deepEqual from 'deep-equal-x';
deepEqual(Error('a'), Error('b'));
// => true
// This does not return `false` because the properties on the Error object
// are non-enumerable:
deepEqual(4, '4');
// => true
deepEqual({a: 4, b: '1'}, {b: '1', a: 4});
// => true
deepEqual(new Date(), new Date(2000, 3, 14));
// => false
deepEqual(4, '4', true);
// => false
```