# deepEqual > Test for deep equality between two values.
## Usage ```javascript var deepEqual = require( '@stdlib/assert/deep-equal' ); ``` #### deepEqual( a, b ) Returns a `boolean` indicating if `a` is deep equal to `b`. ```javascript var bool = deepEqual( [ 1, 2, 3 ], [ 1, 2, 3 ] ); // returns true bool = deepEqual( [ 1, 2, 3 ], [ 1, 2, '3' ] ); // returns false bool = deepEqual( { 'a': 2 }, { 'a': [ 2 ] } ); // returns false ```
## Notes - The function uses strict equality checks (`===`) and does not perform any type coercion. - When given two objects, only enumerable own properties are recursively compared.
## Examples ```javascript var deepEqual = require( '@stdlib/assert/deep-equal' ); var bool; var a; var b; a = [ true, false, true ]; b = [ true, false, true ]; bool = deepEqual( a, b ); // returns true b.pop(); bool = deepEqual( a, b ); // returns false a = { 'a': { 'b': { 'c': 'd' } } }; b = { 'a': { 'b': { 'c': 'd' } } }; bool = deepEqual( a, b ); // returns true b.a.b.c = null; bool = deepEqual( a, b ); // returns false a = { 'a': [ { 'b': 0 }, { 'c': 1 } ] }; b = { 'a': [ { 'b': 0 }, { 'c': 1 } ] }; bool = deepEqual( a, b ); // returns true b = { 'a': [ { 'b': [ 0 ] }, { 'c': '1' } ] }; bool = deepEqual( a, b ); // returns false ```