# 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
```
[mdn-eval]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval