# DataView > [Constructor][mdn-dataview] which returns a data view representing a provided array buffer.
## Usage ```javascript var DataView = require( '@stdlib/array/dataview' ); ``` #### DataView( buffer\[, byteOffset\[, byteLength]] ) Returns a [`DataView`][mdn-dataview] representing a provided array buffer. ```javascript var ArrayBuffer = require( '@stdlib/array/buffer' ); var buf = new ArrayBuffer( 5 ); // returns var dv = new DataView( buf ); // returns ``` * * * ### Properties #### DataView.prototype.buffer **Read-only** property which returns the underlying array buffer. ```javascript var ArrayBuffer = require( '@stdlib/array/buffer' ); var buf1 = new ArrayBuffer( 5 ); var dv = new DataView( buf1 ); var buf2 = dv.buffer; // returns var bool = ( buf1 === buf2 ); // returns true ``` #### DataView.prototype.byteLength **Read-only** property which returns the length (in bytes) of the [`DataView`][mdn-dataview]. ```javascript var ArrayBuffer = require( '@stdlib/array/buffer' ); var buf = new ArrayBuffer( 5 ); var dv = new DataView( buf ); var byteLength = dv.byteLength; // returns 5 ``` #### DataView.prototype.byteOffset **Read-only** property which returns the number of bytes from the [`DataView`][mdn-dataview] to the start of the underlying array buffer. ```javascript var ArrayBuffer = require( '@stdlib/array/buffer' ); var buf = new ArrayBuffer( 5 ); var dv = new DataView( buf, 3 ); var byteOffset = dv.byteOffset; // returns 3 ``` * * * ### Methods TODO: document methods
* * *
## Examples ```javascript var IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' ); var toBinaryString = require( '@stdlib/number/uint8/base/to-binary-string' ); var randu = require( '@stdlib/random/base/randu' ); var Uint8Array = require( '@stdlib/array/uint8' ); var ArrayBuffer = require( '@stdlib/array/buffer' ); var DataView = require( '@stdlib/array/dataview' ); // Create a new ArrayBuffer: var buf = new ArrayBuffer( 64 ); // Create a new DataView: var dv = new DataView( buf ); // Set values in the view: var i; for ( i = 0; i < dv.byteLength/8; i++ ) { dv.setFloat64( i*8, randu()*100.0, IS_LITTLE_ENDIAN ); } // Create a "bytes" view of the underlying array buffer: var bytes = new Uint8Array( dv.buffer ); // Print the bytes: for ( i = 0; i < bytes.length; i++ ) { console.log( 'byte %d: %s', i, toBinaryString( bytes[ i ] ) ); } ```