eval() 函數可計算某個字符串,並執行其中的的 JavaScript 代碼。javascript
eval(string)
參數 | 描述 |
---|---|
string | 必需。要計算的字符串,其中含有要計算的 JavaScript 表達式或要執行的語句。 |
經過計算 string 獲得的值(若是有的話)。java
該方法只接受原始字符串做爲參數,若是 string 參數不是原始字符串,那麼該方法將不做任何改變地返回。所以請不要爲 eval() 函數傳遞 String 對象來做爲參數。express
若是試圖覆蓋 eval 屬性或把 eval() 方法賦予另外一個屬性,並經過該屬性調用它,則 ECMAScript 實現容許拋出一個 EvalError 異常。函數
若是參數中沒有合法的表達式和語句,則拋出 SyntaxError 異常。spa
若是非法調用 eval(),則拋出 EvalError 異常。對象
若是傳遞給 eval() 的 Javascript 代碼生成了一個異常,eval() 將把該異常傳遞給調用者。ip
提示:雖然 eval() 的功能很是強大,但在實際使用中用到它的狀況並很少。字符串
在本例中,咱們將在幾個字符串上運用 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>
輸出:it
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); }
關於catch:
try {
return a/b;
}
catch (Exception e) {
//當b爲0的時候這裏能夠打印提示:除數不能爲0
}
異常的通俗原理在於,當出現某些錯誤的時候,你又不想直接把程序直接關閉,那麼就在你捕捉到的異常裏進行處理,這樣程序能夠繼續運行,而不是立刻關閉.
上面你返回a/b,正常狀況下b不是0,那麼就直接返回,不會執行catch裏的東西,可是當你的b是0,就沒法返回數據,那麼異常了,異常而後被catch捕捉到,就執行catch裏的語句,而後繼續運行下面的代碼.