Definition and usage The eval() function can calculate a string and execute the JavaScript code in it.
Syntax eval(string) Parameter Description string Required. A string to evaluate that contains a JavaScript expression to evaluate or a statement to execute. Return value The value obtained by evaluating string (if any).
Description This method only accepts original strings as parameters. If the string parameter is not an original string, then this method will return unchanged. Therefore please do not pass String objects as arguments to the eval() function.
ECMAScript implementations allow an EvalError exception to be thrown if an attempt is made to override the eval property or assign the eval() method to another property and call it through that property.
Throws a SyntaxError exception if there are no legal expressions or statements in the parameters.
If eval() is called illegally, an EvalError exception will be thrown.
If the Javascript code passed to eval() generates an exception, eval() will pass the exception to the caller.
Tips and Notes Tip: Although eval() is very powerful, it is rarely used in actual use.
Let me share with you a commonly used example:
<SCRIPT language="javascript"> function showsubmenu(sid) { whichEl = eval("submenu" + sid); if (whichEl.style.display == "none") { eval("submenu" + sid + ".style.display=\"\";"); } else { eval("submenu" + sid + ".style.display=\"none\";"); } } </SCRIPT>
Eval function
Function: First interpret Javascript code and then execute it
Usage: Eval(codeString)
codeString is a string containing Javascript statements, which is compiled using the Javascript engine after eval.
A small example:
var the_unevaled_answer = "2 3";
var the_evaled_answer = eval("2 3");
alert("the un-evaled answer is " the_unevaled_answer " and the evaled answer is " the_evaled_answer);
If you run this eval program, you will see that the string "2 3" is actually executed in JavaScript. So when you set the value of the_evaled_answer to eval("2 3"), JavaScript will understand and return the sum of 2 and 3 to the_evaled_answer.
This may seem a bit silly, but it can actually do very interesting things. For example, using eval you can create functions directly based on user input. This allows the program to change itself based on time or user input, by doing the opposite
Three, you can get amazing results.
In practice, eval is rarely used, but maybe you have seen someone using eval to get hard-to-index objects. One of the problems with the Document Object Model (DOM) is that sometimes it's a pain to get the object you ask for. For example, here is a function that asks the user which image to transform: To transform which image you can use the following function:
function swapOne() { var the_image = prompt("change parrot or cheese",""); var the_image_object; if (the_image == "parrot") { the_image_object = window.document.parrot; } else { the_image_object = window.document.cheese; } the_image_object.src = "ant.gif"; }
along with these image tags:
Please pay attention to a few lines like this:
the_image_object = window.document.parrot;
It assigns an image object to a variable. Although it looks a bit strange, it is grammatically correct. But what happens when you have 100 images instead of two? You have to write a lot of if-then-else statements, if only it could be like this:
function swapTwo() { var the_image = prompt("change parrot or cheese",""); window.document.the_image.src = "ant.gif"; }
Unfortunately, JavaScript will look for an image named the_image instead of "cheese" or "parrot" as you expected, so you get the error message: "Haven't heard of an object named the_image" .
Fortunately, eval can help you get the object you want.
function simpleSwap() { var the_image = prompt("change parrot or cheese",""); var the_image_name = "window.document." + the_image; var the_image_object = eval(the_image_name); the_image_object.src = "ant.gif"; }
If the user fills in "parrot" in the prompt box, a string is created in the second line, window.document.parrot. Then the third line containing eval means: "Give me the object window.document .parrot" - that is the image object you want. Once you obtain the image object, you can set its src attribute to ant.gif. A little scared? No need. It's actually quite useful and people use it a lot.