The eval function in JavaScript serves to assess the expression. It is a universal function in JavaScript that assesses the designated string as JavaScript code and runs it.
When using the eval function, it expects a string as its parameter. If the provided parameter consists of statements, eval will assess those statements. In cases where the parameter is an expression, eval will compute the expression. If the input parameter of eval is not a string, the function will simply return the parameter as it is without making any changes.
The eval function has certain constraints, including its disrecommendation due to security concerns. It is advised against due to its impact on speed and code clarity.
Syntax
eval(string)
Values
It receives a sole parameter, which is described in the following manner.
A string in JavaScript serves as a representation of a JavaScript expression, a single statement, or a series of statements. It may denote a variable, statement, or a JavaScript expression.
To grasp the functionality of the JavaScript eval function, we will utilize visual aids.
Example1
This is a basic illustration demonstrating the evaluation of an expression by utilizing the eval function. Within this instance, various variables are employed. The eval function is being used on the variables a, b, and c to determine the total, product, and the result of subtraction.
<html>
<head>
<script>
var a = 10, b = 20, c = 30, sum, mul, sub;
sum = eval(" a + b + c ");
mul = eval(" a * b * c");
sub = eval(" a - b");
document.write(sum + "<br>");
document.write(mul + "<br>");
document.write(sub);
</script>
</head>
<body>
</body>
</html>
Output
Upon running the provided code, the resulting output will be -
60
6000
-10
Example2
In this instance, we demonstrate the invocation of a function utilizing the eval function. Specifically, a function named fun is defined with a pair of parameters and it yields the product of the two provided arguments.
The function is being invoked within the eval function, and the output is being stored in a variable named res.
<html>
<head>
<script>
var res;
function fun(a, b)
{
return a * b;
}
eval("res = fun(50, 50);");
document.write(res);
</script>
</head>
<body>
</body>
</html>
Output
After the execution of code, the output will be -
Example3 - Evaluate the string with JavaScript statements
In this instance, we demonstrate the utilization of the eval function to assess a string containing JavaScript code. The string, named str, comprises a JavaScript conditional statement involving an if-else clause. The evaluation involves checking the value of the variable 'x'. If 'x' equals 0, the result will be 'SUNDAY'; otherwise, it will be 'MONDAY'.
<html>
<head>
<script>
var x = 0;
var str = "if(x == 0) {'SUNDAY'} else 'MONDAY';";
document.write('The output is : ', eval(str));
</script>
</head>
<body>
</body>
</html>
Output
After the execution of code, the output will be -
The output is : SUNDAY
Example - convert string to JavaScript Objects
Here, we are using the object obj to represent the data.
In this scenario, we are utilizing the object labeled as obj to symbolize the data.
<html>
<head>
<script>
var str = '({"fname" : "Harry", "lname" : "Rickman"})';
var obj = eval(str);
document.write(obj.fname + " " + obj.lname);
</script>
</head>
<body>
</body>
</html>
Output
After the execution of code, the output will be -
Harry Rickman