# ArrayBuffer > [Constructor][mdn-arraybuffer] which returns an object used to represent a generic, fixed-length raw binary data buffer.
## Usage ```javascript var ArrayBuffer = require( '@stdlib/array/buffer' ); ``` #### ArrayBuffer( size ) Returns an [`ArrayBuffer`][mdn-arraybuffer] having a specified number of bytes. ```javascript var buf = new ArrayBuffer( 5 ); // returns ``` * * * ### Properties #### ArrayBuffer.length Number of input arguments the constructor accepts. ```javascript var len = ArrayBuffer.length; // returns 1 ``` #### ArrayBuffer.prototype.byteLength **Read-only** property which returns the length (in bytes) of the [`ArrayBuffer`][mdn-arraybuffer]. ```javascript var buf = new ArrayBuffer( 5 ); var byteLength = buf.byteLength; // returns 5 ``` * * * ### Methods #### ArrayBuffer.isView( arr ) Static method which returns a `boolean` indicating if provided a buffer view. ```javascript var Float64Array = require( '@stdlib/array/float64' ); var view = new Float64Array( 10 ); var bool = ArrayBuffer.isView( view ); // returns true ``` #### ArrayBuffer.prototype.slice( \[start\[, end]] ) Copies the bytes of an `ArrayBuffer` to a new [`ArrayBuffer`][mdn-arraybuffer]. ```javascript var b1 = new ArrayBuffer( 10 ); var b2 = b1.slice(); // returns var bool = ( b2 === b1 ); // returns false ``` By default, the method copies from the beginning of the [`ArrayBuffer`][mdn-arraybuffer]. To beginning copying from a different byte index, provide a `start` argument, specifying the starting byte index (inclusive). ```javascript var b1 = new ArrayBuffer( 10 ); var b2 = b1.slice( 2 ); var nbytes = b2.byteLength; // returns 8 ``` If `start < 0`, the index is relative to the end of the [`ArrayBuffer`][mdn-arraybuffer]. ```javascript var b1 = new ArrayBuffer( 10 ); var b2 = b1.slice( -2 ); var nbytes = b2.byteLength; // returns 2 ``` By default, the method copies to the end of the [`ArrayBuffer`][mdn-arraybuffer]. To copy until a particular byte index, provide an `end` index, specifying the ending byte index (exclusive). ```javascript var b1 = new ArrayBuffer( 10 ); var b2 = b1.slice( 2, 6 ); var nbytes = b2.byteLength; // returns 4 ``` If `end < 0`, the index is relative to the end of the [`ArrayBuffer`][mdn-arraybuffer]. ```javascript var b1 = new ArrayBuffer( 10 ); var b2 = b1.slice( 2, -2 ); var nbytes = b2.byteLength; // returns 6 ```
* * *
## Examples ```javascript var randu = require( '@stdlib/random/base/randu' ); var Float64Array = require( '@stdlib/array/float64' ); var Uint8Array = require( '@stdlib/array/uint8' ); var toBinaryString = require( '@stdlib/number/uint8/base/to-binary-string' ); var ArrayBuffer = require( '@stdlib/array/buffer' ); var bytes; var buf; var arr; var i; // Create a new ArrayBuffer: buf = new ArrayBuffer( 64 ); // Create a Float64 array buffer view: arr = new Float64Array( buf.byteLength/8 ); for ( i = 0; i < arr.length; i++ ) { arr[ i ] = randu() * 100.0; } // Create a "bytes" view of the array buffer: bytes = new Uint8Array( arr.buffer ); // Print the bytes: for ( i = 0; i < bytes.length; i++ ) { console.log( 'byte %d: %s', i, toBinaryString( bytes[ i ] ) ); } ```