在 JavaScript 中,eval() 函数用于计算表达式。它是 JavaScript 的全局函数,可以评估指定的字符串作为 JavaScript 代码并执行它。

eval() 函数的参数是一个字符串。如果参数表示语句,eval() 将评估这些语句。如果参数是一个表达式,eval() 将评估该表达式。如果 eval() 的参数不是字符串,则函数将无修改地返回参数。

使用 eval() 函数有一些限制,例如由于安全原因,不建议使用 eval() 函数。它不建议使用,因为它速度较慢并且使代码难以阅读。

语法

eval(string)

它接受一个单一参数,如下所定义。

string: 它表示一个JavaScript表达式、单一语句或一系列语句。它可以是变量、语句或 JavaScript 表达式。

让我们通过示例来理解 JavaScript 的 eval() 函数。

示例1

这是一个使用 eval() 函数评估表达式的简单示例。在此示例中,有一些变量。我们对变量 a、b 和 c 应用 eval() 函数,以计算它们的和、乘积和差。

<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>

输出

执行上述代码后,输出将为

60
6000
-10 

示例2

在这个示例中,我们使用 eval() 函数调用一个函数。这里有一个名为 fun() 的函数,它有两个参数并返回这两个参数的乘积。

我们在 eval() 函数中调用该函数,并将结果存储在 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>

输出

执行代码后,输出将为

2500

示例3 - 使用 JavaScript 语句评估字符串

在这个示例中,我们使用 eval() 函数来评估带有 JavaScript 语句的字符串。在这里,有一个字符串 str,包含 JavaScript 的条件 if-else 语句。我们匹配变量 'x' 的值,如果变量 x 的值为 0,则输出将为 'SUNDAY',否则输出将为 '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>

输出

执行代码后,输出将为

The output is : SUNDAY

示例 - 将字符串转换为 JavaScript 对象

在这个示例中,我们将字符串转换为 JSON 对象。在这里,字符串 str 包含数据而不是代码。我们必须将数据转换为允许使用一部分 JavaScript 语法来表示数据的 JSON。

在这里,我们使用对象 obj 来表示数据。

<html>
<head>
<script>
var str = '({"fname" : "Harry", "lname" : "Rickman"})'; 
  
var obj = eval(str); 
  
document.write(obj.fname + " " + obj.lname); 
</script>
</head>
<body>
</body>
</html>

输出

执行代码后,输出将为

Harry Rickman

标签: js, JavaScript, JavaScript语言, JavaScript开发, JavaScript语法, JavaScript脚本, JavaScript教程, JavaScript入门, JavaScript入门教程, JavaScript进阶, JavaScript宝典, JavaScript学习, JavaScript指南, JavaScript大全