JavaScript 全局對象javascript
eval() 函數可計算某個字符串,並執行其中的的 JavaScript 代碼。java
eval(string)
參數 | 描述 |
---|---|
string | 必需。要計算的字符串,其中含有要計算的 JavaScript 表達式或要執行的語句。 |
經過計算 string 獲得的值(若是有的話)。express
該方法只接受原始字符串做爲參數,若是 string 參數不是原始字符串,那麼該方法將不做任何改變地返回。所以請不要爲 eval() 函數傳遞 String 對象來做爲參數。函數
若是試圖覆蓋 eval 屬性或把 eval() 方法賦予另外一個屬性,並經過該屬性調用它,則 ECMAScript 實現容許拋出一個 EvalError 異常。spa
若是參數中沒有合法的表達式和語句,則拋出 SyntaxError 異常。對象
若是非法調用 eval(),則拋出 EvalError 異常。ip
若是傳遞給 eval() 的 Javascript 代碼生成了一個異常,eval() 將把該異常傳遞給調用者。字符串
提示:雖然 eval() 的功能很是強大,但在實際使用中用到它的狀況並很少。get
在本例中,咱們將在幾個字符串上運用 eval(),並看看返回的結果:string
<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
看一下在其餘狀況中,eval() 返回的結果:
eval("2+3") // 返回 5 var myeval = eval; // 可能會拋出 EvalError 異常 myeval("2+3"); // 可能會拋出 EvalError 異常
能夠使用下面這段代碼來檢測 eval() 的參數是否合法:
try { alert("Result:" + eval(prompt("Enter an expression:",""))); } catch(exception) { alert(exception); }