The eval()
function in JavaScript executes a string of JavaScript code. It evaluates the string as if it were actual JavaScript code written in the script.
Syntax
eval(string)
The string
must be a valid JavaScript expression or statement.
Basic Example
var result = eval("2 + 2");
console.log(result); // Output: 4
Note: The string is treated as actual code and executed immediately.
Use Cases
- Calculating dynamic expressions.
- Executing code stored as strings (e.g. from user input or external sources).
- Debugging or simple dynamic scripting (though better alternatives usually exist).
Example: Using eval()
to Assign Variables
eval("var x = 10;");
console.log(x); // Output: 10
Here, the variable x
is created at runtime from the evaluated string.
Dangers of Using eval()
Security Risk: If
eval()
processes user input, it can execute malicious code. This can lead to serious vulnerabilities (e.g., XSS).Performance Warning: Code executed with
eval()
cannot be optimized by JavaScript engines and can slow down your app.Dangerous Example
var userInput = "alert('Hacked!')";
eval(userInput); // Executes alert
Imagine if this came from a form or URL — it could be very harmful.
Safer Alternatives
- Use
JSON.parse()
instead ofeval()
for JSON strings. - Use
Function()
constructor cautiously for dynamic code. - Design logic so you don’t need to dynamically evaluate code at runtime.
Example: Safer JSON Parsing
// Don't use eval to parse JSON
// var data = eval('(' + jsonString + ')');
// Use JSON.parse
var jsonString = '{"name": "Alice"}';
var data = JSON.parse(jsonString);
console.log(data.name); // Output: Alice
Points to be remember :
eval()
executes a string as JavaScript code.- Use it with extreme caution due to security and performance risks.
- Prefer built-in, safer alternatives for common tasks (e.g.,
JSON.parse
). - Avoid using
eval()
unless absolutely necessary.