當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


JavaScript eval()用法及代碼示例

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