js中的eval()和catch()

定義和用法

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() 的功能很是強大,但在實際使用中用到它的狀況並很少。字符串

實例

例子 1

在本例中,咱們將在幾個字符串上運用 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

例子 2

看一下在其餘狀況中,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裏的語句,而後繼續運行下面的代碼.
相關文章
相關標籤/搜索