(一)eval函數定義:eval() 函數可計算某個字符串,並執行其中的的 JavaScript 代碼。javascript
(二)語法:eval(string)string必需。java
(三)返回值:經過計算 string 獲得的值(若是有的話)express
(四)說明:函數
該方法只接受原始字符串做爲參數,若是 string 參數不是原始字符串,那麼該方法將不做任何改變地返回。所以請不要爲 eval() 函數傳遞 String 對象來做爲參數。spa
若是試圖覆蓋 eval 屬性或把 eval() 方法賦予另外一個屬性,並經過該屬性調用它,則 ECMAScript 實現容許拋出一個 EvalError 異常。code
(五)拋出:對象
若是參數中沒有合法的表達式和語句,則拋出 SyntaxError 異常。blog
若是非法調用 eval(),則拋出 EvalError 異常。ip
若是傳遞給 eval() 的 Javascript 代碼生成了一個異常,eval() 將把該異常傳遞給調用者。字符串
(六)實例:
1 <script type="text/javascript"> 2 eval("x=10;y=20;document.write(x*y)") 3 //結果200 4 document.write(eval("2+2")) 5 //結果4 6 var x=10 7 document.write(eval(x+17)) 8 //結果27 9 </script>
異常實例:
//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); }
isNaN函數:
(一)定義和用法:isNaN() 函數用於檢查其參數是不是非數字值。
(二)語法:isNaN(x) x必需。要檢測的值。
(三)返回值:若是 x 是特殊的非數字值 NaN(或者能被轉換爲這樣的值),返回的值就是 true。若是 x 是其餘值,則返回 false。
(四)說明:isNaN() 函數可用於判斷其參數是不是 NaN,該值表示一個非法的數字(好比被 0 除後獲得的結果)。
若是把 NaN 與任何值(包括其自身)相比獲得的結果均是 false,因此要判斷某個值是不是 NaN,不能使用 == 或 === 運算符。正由於如此,isNaN() 函數是必需的。
tip:isNaN() 函數一般用於檢測 parseFloat() 和 parseInt() 的結果,以判斷它們表示的是不是合法的數字。固然也能夠用 isNaN() 函數來檢測算數錯誤,好比用 0 做除數的狀況。
(五)實例:
1 <script> 2 document.write(isNaN(123)); 3 //false 4 document.write(isNaN(-1.23)); 5 //false 6 document.write(isNaN(5-2)); 7 //false 8 document.write(isNaN(0)); 9 //false 10 document.write(isNaN("Hello")); 11 true 12 document.write(isNaN("2005/12/12")); 13 true 14 </script>