JavaScript eval() 函數(shù)
定義和用法
eval() 函數(shù)可計(jì)算某個(gè)字符串,并執(zhí)行其中的的 JavaScript 代碼。
語(yǔ)法
eval(string)
參數(shù) | 描述 |
---|---|
string | 必需。要計(jì)算的字符串,其中含有要計(jì)算的 JavaScript 表達(dá)式或要執(zhí)行的語(yǔ)句。 |
返回值
通過(guò)計(jì)算 string 得到的值(如果有的話)。
說(shuō)明
該方法只接受原始字符串作為參數(shù),如果 string 參數(shù)不是原始字符串,那么該方法將不作任何改變地返回。因此請(qǐng)不要為 eval() 函數(shù)傳遞 String 對(duì)象來(lái)作為參數(shù)。
如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個(gè)屬性,并通過(guò)該屬性調(diào)用它,則 ECMAScript 實(shí)現(xiàn)允許拋出一個(gè) EvalError 異常。
拋出
如果參數(shù)中沒(méi)有合法的表達(dá)式和語(yǔ)句,則拋出 SyntaxError 異常。
如果非法調(diào)用 eval(),則拋出 EvalError 異常。
如果傳遞給 eval() 的 Javascript 代碼生成了一個(gè)異常,eval() 將把該異常傳遞給調(diào)用者。
提示和注釋
提示:雖然 eval() 的功能非常強(qiáng)大,但在實(shí)際使用中用到它的情況并不多。
實(shí)例
例子 1
在本例中,我們將在幾個(gè)字符串上運(yùn)用 eval(),并看看返回的結(jié)果:
<script type="text/javascript"> eval("x=10;y=20;document.write(x*y)") document.write(eval("2+2")) var x=10 document.write(eval(x+17)) </script>
輸出:
200 4 27
例子 2
看一下在其他情況中,eval() 返回的結(jié)果:
eval("2+3") // 返回 5 var myeval = eval; // 可能會(huì)拋出 EvalError 異常 myeval("2+3"); // 可能會(huì)拋出 EvalError 異常
可以使用下面這段代碼來(lái)檢測(cè) eval() 的參數(shù)是否合法:
try { alert("Result:" + eval(prompt("Enter an expression:",""))); } catch(exception) { alert(exception); }
TIY
- eval()
- 如何使用 eval()。