# isCircular > Test if an object-like value contains a circular reference.
## Usage ```javascript var isCircular = require( '@stdlib/assert/is-circular' ); ``` #### isCircular( value ) Test if an object-like `value` contains a circular reference. ```javascript var obj = { 'beep': 'boop' }; var bool = isCircular( obj ); // returns false obj.self = obj; bool = isCircular( obj ); // returns true ```
## Notes - Object-like values include `objects` (except for `null`), `arrays`, `functions`, regular expressions, `Date` objects, and any other JavaScript object to which properties may be bound.
## Examples ```javascript var isCircular = require( '@stdlib/assert/is-circular' ); var obj1 = { 'a': 'beep', 'b': { 'c': 'boop' } }; obj1.b.self = obj1; var bool = isCircular( obj1 ); // returns true var obj2 = { 'a': {}, 'b': obj1 }; bool = isCircular( obj2 ); // returns true var arr = [ 1, 2, 3 ]; arr.push( arr ); bool = isCircular( arr ); // returns true function circ() {} circ.self = circ; bool = isCircular( circ ); // returns true var obj3 = { 'beep': 'boop' }; bool = isCircular({ 'a': obj3, 'b': obj3 }); // returns false bool = isCircular( {} ); // returns false bool = isCircular( null ); // returns false ```