JavaScript eval() 函數介紹及應用樣本,javascripteval

來源:互聯網
上載者:User

JavaScript eval() 函數介紹及應用樣本,javascripteval

eval(String) 函數可計算某個字串,並執行其中的的 JavaScript 代碼。

傳回值

通過計算 string 得到的值(如果有的話)。

說明

該方法只接受原始字串作為參數,如果 string 參數不是原始字串,那麼該方法將不作任何改變地返回。因此請不要為 eval() 函數傳遞 String 對象來作為參數。

如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個屬性,並通過該屬性調用它,則 ECMAScript 實現允許拋出一個 EvalError 異常。

拋出

如果參數中沒有合法的運算式和語句,則拋出 SyntaxError 異常。

如果非法調用 eval(),則拋出 EvalError 異常。

如果傳遞給 eval() 的 Javascript 代碼產生了一個異常,eval() 將把該異常傳遞給調用者。

提示和注釋

提示:雖然 eval() 的功能非常強大,但在實際使用中用到它的情況並不多。

例子:

<html><body><script type="text/javascript">eval("x=10;y=20;document.write(x*y)")document.write("<br />")document.write(eval("2+2"))document.write("<br />")var x=10document.write(eval(x+17))document.write("<br />")eval("alert('Hello world')")</script></body></html>

輸出:

200

4

24


JAVASCRIPT中的EVAL()函數問題?如下:

eval 可以執行一個字串,不僅僅是變數。比如,你有 9 個函數,func1 ~ func9,你根據變數 i 的值(1~9),決定調用哪個函數,平時你需要寫:
switch(i)
{
case 1: func1(); break;
case 2: func2(); break;
…… (要寫 9 行)
}

但是用 eval,你只需要寫 1 行就夠了:
eval("func" + i + "()");

這回應該可以理解了吧。
 
javascript的eval函數的優點是什?只知道是將括弧內的字串當JS語句處理通俗舉例說明其用途與優點

eval可以將字串產生語句執行,一般執行動態js語句。
eval的使用場合:有時候我們預先不知道要執行什麼語句,只有當條件和參數給時才知道執行什麼語句,這時候eval就派上用場了。
Eval 函數
功能:先解釋Javascript代碼,然後在執行它
用法:Eval(codeString)
codeString是包含有Javascript語句的字串,在eval之後使用Javascript引擎編譯。

舉個例子:
function output(a,b)
{
var tmpa,tmpb;
tmpa=eval("document.all."+a+".value");
//這裡動態執行js 相等於tmpa=document.getElementById(a).value;
tmpb=eval("document.all."+b+".value");
//這裡動態執行js
//這裡動態執行js 相等於tmpb=document.getElementById(b).value;
document.write(tmpa+tmpb);
}
output('input1','input2');

例子二:
function tophide(id) //id indicates menu
{
if (top.topframeset.rows == "31,*")
{
top.topframeset.rows = "86,*";
eval(id + "_icon.src="/imgs/collapse_up.gif'"); //這裡動態執行js

eval(id + "_icon.alt='Collapse The Head'"); //這裡動態執行js
head.style.display = "block"
}
else
{
top.topframeset.rows = "31,*";
eval(id + "_icon.src="/imgs/collapse_down.gif'");//這裡動態執行js
eval(id + "_icon.alt='Expand The He......餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.