JavaScript 中的 eval() 函数用于计算表达式。它是 JavaScirpt 的全局函数,它将指定的字符串计算为 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 包含数据而不是代码。我们必须将数据切换为 JSON,这样字符串就可以使用 JavaScript 语法的子集来表示数据。
在这里,我们使用对象 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
相关用法
- JavaScript eval()用法及代码示例
- JavaScript escape()用法及代码示例
- JavaScript Uint8Array.of()用法及代码示例
- JavaScript BigInt.prototype.toString()用法及代码示例
- JavaScript DataView.getInt16()用法及代码示例
- JavaScript Symbol.keyFor()用法及代码示例
- JavaScript handler.has()用法及代码示例
- JavaScript JSON.stringify()用法及代码示例
- JavaScript Symbol.split属性用法及代码示例
- JavaScript Function.displayName属性用法及代码示例
- JavaScript TypedArray reverse()用法及代码示例
- JavaScript String slice()用法及代码示例
- JavaScript 正则 \n用法及代码示例
- JavaScript Math hypot()用法及代码示例
- JavaScript Set add()用法及代码示例
- JavaScript Array fill()用法及代码示例
- JavaScript Math abs()用法及代码示例
- JavaScript Date toISOString()用法及代码示例
- JavaScript DataView.getInt8()用法及代码示例
- JavaScript dataView.setBigInt64()用法及代码示例
注:本文由纯净天空筛选整理自 JavaScript eval() function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。