First look at a function of JS
JavaScript eval () function
Definitions and usage
The eval () function computes a string and executes the JavaScript code in it.
Grammar
Eval (String)
Parameter description
String required. The string to evaluate, which contains the JAVASCRIPT expression to evaluate or the statement to execute.
return value
The value, if any, obtained by calculating the string.
Description
The method accepts only the original string as a parameter, and if the string argument is not the original string, the method returns without any changes. Therefore, do not pass a String object as an argument for the eval () function.
If you attempt to overwrite the Eval attribute or assign the eval () method to another property and call it through this property, the ECMAScript implementation allows a Evalerror exception to be thrown.
Thrown
Throws an SyntaxError exception if there are no valid expressions and statements in the argument.
If Eval () is invoked illegally, a Evalerror exception is thrown.
If the Javascript code passed to eval () generates an exception, eval () passes the exception to the caller.
Tips and comments
Tip: Although the eval () is very powerful, it is not much used in practice.
Instance
Example 1
In this case, we'll use Eval () on several strings, and look at the returned results:
Copy Code code as follows:
<script type= "Text/javascript" >
Eval ("X=10;y=20;document.write (x*y)")
document.write (eval ("2+2"))
var x=10
document.write (eval (x+17))
</script>
Output:
200
4
27
Example 2
Look at the results of the eval () return in other cases:
Copy Code code as follows:
Eval ("2+3")//Return 5
var myeval = eval; Evalerror exception may be thrown
Myeval ("2+3"); Evalerror exception may be thrown
You can use the following code to detect if the parameters of eval () are legitimate:
Copy Code code as follows:
try {
Alert ("Result:" + eval (Prompt ("Enter a expression:", ""));
}
catch (Exception) {
alert (exception);
}
The first method is to use the eval inside JS
Here are some examples of your own writing
Copy Code code as follows:
Call ("ShowMsg");
function call (functionname) {
Eval ("this." +functionname+ "()");
}
function ShowMsg () {
Alert ("Success");
}
Eval can automatically recognize the string you splice as a method and call it.
But the malpractice is also very big, imagine, a person change you call place of method name, can call your any method.
The second method is primarily used as a method of its own definition
The main reason is that the second method requires a specific way to write
Copy Code code as follows:
function call (functionname) {
showmsgs["ShowMsg"] ();
}
var showmsgs = {Showmsg:function () {
Alert ("Success");
}
}
Call ("ShowMsg");