ArrayBuffer
Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.
Usage
var ArrayBuffer = require( '@stdlib/array/buffer' );
ArrayBuffer( size )
Returns an ArrayBuffer having a specified number of bytes.
var buf = new ArrayBuffer( 5 ); // returns <ArrayBuffer>
Properties
ArrayBuffer.length
Number of input arguments the constructor accepts.
var len = ArrayBuffer.length; // returns 1
ArrayBuffer.prototype.byteLength
Read-only property which returns the length (in bytes) of the ArrayBuffer.
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.
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.
var b1 = new ArrayBuffer( 10 ); var b2 = b1.slice(); // returns <ArrayBuffer> var bool = ( b2 === b1 ); // returns false
By default, the method copies from the beginning of the ArrayBuffer. To beginning copying from a different byte index, provide a start argument, specifying the starting byte index (inclusive).
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.
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. To copy until a particular byte index, provide an end index, specifying the ending byte index (exclusive).
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.
var b1 = new ArrayBuffer( 10 ); var b2 = b1.slice( 2, -2 ); var nbytes = b2.byteLength; // returns 6
Examples
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 ] ) ); }
See Also
@stdlib/buffer/ctor: Buffer.@stdlib/array/float32: Float32Array.@stdlib/array/float64: Float64Array.@stdlib/array/int16: Int16Array.@stdlib/array/int32: Int32Array.@stdlib/array/int8: Int8Array.@stdlib/array/shared-buffer: SharedArrayBuffer.@stdlib/array/uint16: Uint16Array.@stdlib/array/uint32: Uint32Array.@stdlib/array/uint8: Uint8Array.@stdlib/array/uint8c: Uint8ClampedArray.