# eval > Alias for [`eval`][mdn-eval] global.
## Usage ```javascript var evil = require( '@stdlib/utils/eval' ); ``` #### evil( str ) Alias for [`eval`][mdn-eval] global. ```javascript var v = evil( '5*4*3*2*1' ); // returns 120 ```
## Notes - A reference to [`eval`][mdn-eval] **is** treated differently by the compiler. For example, when evaluating code containing block-scoped declarations (e.g., `let`, `const`, `function`, `class`), the compiler may throw an `error` complaining that block-scoped declarations are **not** yet supported outside of `strict mode`. One possible workaround is to include `"use strict";` in the evaluated code, as done in the example below.
## Examples ```javascript var evil = require( '@stdlib/utils/eval' ); var ctors; var fcn; var i; function compile( ctor ) { var name; var str; name = ctor.match( /^(\w*)Array$/ )[ 1 ]; name += 'DataArray'; str = ''; str += '(function create(){'; str += '"use strict";'; str += 'class '+name+' extends '+ctor+'{'; str += 'constructor(x){'; str += 'super(x);'; str += '}'; str += '}'; str += 'return '+name+';'; str += '})();'; return str; } ctors = [ 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', 'Float32Array', 'Float64Array', 'Array' ]; for ( i = 0; i < ctors.length; i++ ) { fcn = evil( compile( ctors[i] ) ); console.log( fcn.toString() ); } ```
* * *
## CLI
### Usage ```text Usage: js-eval [options] Options: -h, --help Print this message. -V, --version Print the package version. ```
### Examples ```bash $ js-eval '5*4*3*2*1' 120 ```