一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Javascript中eval函數(shù)的使用方法與示例

定義和用法 eval() 函數(shù)可計(jì)算某個(gè)字符串,并執(zhí)行其中的的 JavaScript 代碼。

語法 eval(string) 參數(shù) 描述 string 必需。要計(jì)算的字符串,其中含有要計(jì)算的 JavaScript 表達(dá)式或要執(zhí)行的語句。 返回值 通過計(jì)算 string 得到的值(如果有的話)。

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

如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個(gè)屬性,并通過該屬性調(diào)用它,則 ECMAScript 實(shí)現(xiàn)允許拋出一個(gè) EvalError 異常。

拋出 如果參數(shù)中沒有合法的表達(dá)式和語句,則拋出 SyntaxError 異常。

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

如果傳遞給 eval() 的 Javascript 代碼生成了一個(gè)異常,eval() 將把該異常傳遞給調(diào)用者。

提示和注釋 提示:雖然 eval() 的功能非常強(qiáng)大,但在實(shí)際使用中用到它的情況并不多。

下面為大家分享一個(gè)常用的小例子:

<SCRIPT language="Javascript">function showsubmenu(sid){whichEl = eval("submenu" + sid);if (whichEl.style.display == "none"){eval("submenu" + sid + ".style.display=/"/";");}else{eval("submenu" + sid + ".style.display=/"none/";");}}</SCRIPT>

Eval 函數(shù)

功能:先解釋Javascript代碼,然后在執(zhí)行它

用法:Eval(codeString)

codeString是包含有Javascript語句的字符串,在eval之后使用Javascript引擎編譯。 
舉個(gè)小例子:

var the_unevaled_answer = "2 + 3";
var the_evaled_answer = eval("2 + 3");
alert("the un-evaled answer is " + the_unevaled_answer + " and the evaled answer is " + the_evaled_answer);

如果你運(yùn)行這段eval程序, 你將會(huì)看到在JavaScript里字符串"2 + 3"實(shí)際上被執(zhí)行了。所以當(dāng)你把the_evaled_answer的值設(shè)成 eval("2 + 3")時(shí), JavaScript將會(huì)明白并把2和3的和返回給the_evaled_answer。 

這個(gè)看起來似乎有點(diǎn)傻,其實(shí)可以做出很有趣的事。比如使用eval你可以根據(jù)用戶的輸入直接創(chuàng)建函數(shù)。這可以使程序根據(jù)時(shí)間或用戶輸入的不同而使程序本身發(fā)生變化,通過舉一反

三,你可以獲得驚人的效果。

在實(shí)際中,eval很少被用到,但也許你見過有人使用eval來獲取難以索引的對象。 文檔對象模型(DOM)的問題之一是:有時(shí)你要獲取你要求的對象簡直就是痛苦。例如,這里有一個(gè)函數(shù)詢問用戶要變換哪個(gè)圖象:變換哪個(gè)圖象你可以用下面這個(gè)函數(shù):

function swapOne() {  var the_image = prompt("change parrot or cheese","");  var the_image_object;  if (the_image == "parrot")  {  the_image_object = window.document.parrot;  }  else  {  the_image_object = window.document.cheese;  }  the_image_object.src = "ant.gif"; } 

連同這些image標(biāo)記:

<img src="/stuff3a/parrot.gif" name="parrot" />
<img src="/stuff3a/cheese.gif" name="cheese">

請注意象這樣的幾行語句:
the_image_object = window.document.parrot;
它把一個(gè)圖象對象敷給了一個(gè)變量。雖然看起來有點(diǎn)兒奇怪,它在語法上卻毫無問題。但當(dāng)你有100個(gè)而不是兩個(gè)圖象時(shí)怎么辦?你只好寫上一大堆的 if-then-else語句,要是能象這樣就好了:

function swapTwo() {  var the_image = prompt("change parrot or cheese","");  window.document.the_image.src = "ant.gif"; } 

不幸的是, JavaScript將會(huì)尋找名字叫 the_image而不是你所希望的"cheese"或者"parrot"的圖象,于是你得到了錯(cuò)誤信息:”沒聽說過一個(gè)名為the_image的對象”。 
還好,eval能夠幫你得到你想要的對象。

function simpleSwap() {  var the_image = prompt("change parrot or cheese","");  var the_image_name = "window.document." + the_image;  var the_image_object = eval(the_image_name);  the_image_object.src = "ant.gif"; } 

如果用戶在提示框里填入"parrot",在第二行里創(chuàng)建了一個(gè)字符串即window.document.parrot. 然后包含了eval的第三行意思是: "給我對象window.document.parrot" - 也就是你要的那個(gè)圖象對象。一旦你獲取了這個(gè)圖象對象,你可以把它的src屬性設(shè)為ant.gif. 有點(diǎn)害怕?用不著。其實(shí)這相當(dāng)有用,人們也經(jīng)常使用它。

JavaScript技術(shù)Javascript中eval函數(shù)的使用方法與示例,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲精品国自产拍影院 | 韩日一级毛片 | 国产成人综合在线 | 国产精品综合色区在线观看 | 国产欧美一区二区精品性色tv | 亚洲国产小视频 | 亚洲视频第一页 | 久久天天丁香婷婷中文字幕 | 九月婷婷亚洲综合在线 | 四虎影视久久久 | 综合图区亚洲白拍在线 | 久久精品一区 | 五月激情六月婷婷 | 日韩视频免费一区二区三区 | 国产精品第9页 | 国产成人免费a在线资源 | 特大巨黑吊在线播放 | 久久伊人在 | 国产区在线观看视频 | 国产在线91区精品 | 国产福利在线免费观看 | 日韩三级中文 | 国外免费精品视频在线观看 | 波多野结衣精品一区二区三区 | 激情小说网站 | 好吊色欧美一区二区三区四区 | 操吊视频 | 五月天激情婷婷婷久久 | 九色精品视频在线观看 | 欧美色视频在线 | 色综合久久88中文字幕 | 91精品啪在线观看国产 | 亚洲综人网 | 国产波波社区精品视频 | 久久久五月| 国产成人精品一区二区三区 | 国产91精品一区二区 | 国产亚洲一区二区在线观看 | 国产日韩欧美一区二区三区视频 | 一区二区三区四区视频 | 久久久亚洲国产精品主播 |