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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。