Team LiB   Previous Section   Next Section
eval( ) execute JavaScript code from a string

Availability

JavaScript 1.0; JScript 1.0; ECMAScript v1

Synopsis

eval(code) 

Arguments

code

A string that contains the JavaScript expression to be evaluated or the statements to be executed.

Returns

The value of the evaluated code, if any.

Throws

SyntaxError

Indicates that code does not contain legal JavaScript.

EvalError

Indicates that eval( ) was called illegally, through an identifier other than "eval", for example. See the restrictions on this function described below.

Other exception

If the JavaScript code passed to eval( ) generates an exception, eval( ) will pass that exception on to the caller.

Description

eval( ) is a global method that evaluates a string containing JavaScript code. If code contains an expression, eval evaluates the expression and returns its value. If code contains a JavaScript statement or statements, eval( ) executes those statements and returns the value, if any, returned by the last statement. If code does not return any value, eval( ) returns undefined. Finally, if code throws an exception, eval( ) passes that exception on to the caller.

eval( ) provides a very powerful capability to the JavaScript language, but its use is infrequent in real-world programs. Obvious uses are to write programs that act as recursive JavaScript interpreters and to write programs that dynamically generate and evaluate JavaScript code.

Most JavaScript functions and methods that expect string arguments accept arguments of other types as well and simply convert those argument values to strings before proceeding. eval( ) does not behave like this. If the code argument is not a primitive string, it is simply returned unchanged. Be careful, therefore, that you do not inadvertently pass a String object to eval( ) when you intended to pass a primitive string value.

For purposes of implementation efficiency, the ECMAScript v3 standard places an unusual restriction on the use of eval( ). An ECMAScript implementation is allowed to throw an EvalError exception if you attempt to overwrite the eval property or if you assign the eval( ) method to another property and attempt to invoke it through that property.

Example

eval("1+2");  // Returns 3



// This code uses client-side JavaScript methods to prompt the user to

// enter an expression and to display the results of evaluating it.

// See the client-side methods Window.alert(  ) and Window.prompt(  ) for details.

try {

    alert("Result: " +  eval(prompt("Enter an expression:","")));

}

catch(exception) {

    alert(exception);

}



var myeval = eval;  // May throw an EvalError

myeval("1+2");      // May throw an EvalError
    Team LiB   Previous Section   Next Section