位置: 編程技術(shù) - 正文
推薦整理分享Javascript中eval函數(shù)的使用方法與示例(js中eval函數(shù)是干嘛的),希望有所幫助,僅作參考,歡迎閱讀內(nèi)容。
文章相關(guān)熱門搜索詞:js eval作用域,js中eval函數(shù)的用法,js eval方法的缺點(diǎn),javascript中eval函數(shù),javascript中eval函數(shù),js eval()函數(shù)的作用是什么?,js evaluate,js evaluate,內(nèi)容如對(duì)您有幫助,希望把文章鏈接給更多的朋友!
定義和用法 eval() 函數(shù)可計(jì)算某個(gè)字符串,并執(zhí)行其中的的 JavaScript 代碼。
語(yǔ)法 eval(string) 參數(shù) 描述 string 必需。要計(jì)算的字符串,其中含有要計(jì)算的 JavaScript 表達(dá)式或要執(zhí)行的語(yǔ)句。 返回值 通過(guò)計(jì)算 string 得到的值(如果有的話)。
說(shuō)明 該方法只接受原始字符串作為參數(shù),如果 string 參數(shù)不是原始字符串,那么該方法將不作任何改變地返回。因此請(qǐng)不要為 eval() 函數(shù)傳遞 String 對(duì)象來(lái)作為參數(shù)。
如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個(gè)屬性,并通過(guò)該屬性調(diào)用它,則 ECMAScript 實(shí)現(xiàn)允許拋出一個(gè) EvalError 異常。
拋出 如果參數(shù)中沒(méi)有合法的表達(dá)式和語(yǔ)句,則拋出 SyntaxError 異常。
如果非法調(diào)用 eval(),則拋出 EvalError 異常。
如果傳遞給 eval() 的 Javascript 代碼生成了一個(gè)異常,eval() 將把該異常傳遞給調(diào)用者。
提示和注釋 提示:雖然 eval() 的功能非常強(qiáng)大,但在實(shí)際使用中用到它的情況并不多。
下面為大家分享一個(gè)常用的小例子:
Eval 函數(shù)
功能:先解釋Javascript代碼,然后在執(zhí)行它
用法:Eval(codeString)
codeString是包含有Javascript語(yǔ)句的字符串,在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è)看起來(lái)似乎有點(diǎn)傻,其實(shí)可以做出很有趣的事。比如使用eval你可以根據(jù)用戶的輸入直接創(chuàng)建函數(shù)。這可以使程序根據(jù)時(shí)間或用戶輸入的不同而使程序本身發(fā)生變化,通過(guò)舉一反
三,你可以獲得驚人的效果。
在實(shí)際中,eval很少被用到,但也許你見(jiàn)過(guò)有人使用eval來(lái)獲取難以索引的對(duì)象。 文檔對(duì)象模型(DOM)的問(wèn)題之一是:有時(shí)你要獲取你要求的對(duì)象簡(jiǎn)直就是痛苦。例如,這里有一個(gè)函數(shù)詢問(wèn)用戶要變換哪個(gè)圖象:變換哪個(gè)圖象你可以用下面這個(gè)函數(shù):
連同這些image標(biāo)記:
<img src="/stuff3a/parrot.gif" name="parrot" /> <img src="/stuff3a/cheese.gif" name="cheese">
請(qǐng)注意象這樣的幾行語(yǔ)句: the_image_object = window.document.parrot; 它把一個(gè)圖象對(duì)象敷給了一個(gè)變量。雖然看起來(lái)有點(diǎn)兒奇怪,它在語(yǔ)法上卻毫無(wú)問(wèn)題。但當(dāng)你有個(gè)而不是兩個(gè)圖象時(shí)怎么辦?你只好寫(xiě)上一大堆的 if-then-else語(yǔ)句,要是能象這樣就好了:
不幸的是, JavaScript將會(huì)尋找名字叫 the_image而不是你所希望的"cheese"或者"parrot"的圖象,于是你得到了錯(cuò)誤信息:”沒(méi)聽(tīng)說(shuō)過(guò)一個(gè)名為the_image的對(duì)象”。 還好,eval能夠幫你得到你想要的對(duì)象。
如果用戶在提示框里填入"parrot",在第二行里創(chuàng)建了一個(gè)字符串即window.document.parrot. 然后包含了eval的第三行意思是: "給我對(duì)象window.document.parrot" - 也就是你要的那個(gè)圖象對(duì)象。一旦你獲取了這個(gè)圖象對(duì)象,你可以把它的src屬性設(shè)為ant.gif. 有點(diǎn)害怕?用不著。其實(shí)這相當(dāng)有用,人們也經(jīng)常使用它。
經(jīng)常用到的JavasScript事件的翻譯 onabort當(dāng)用戶中斷下載圖像時(shí)觸發(fā)。onactivate當(dāng)對(duì)象設(shè)置為活動(dòng)元素時(shí)觸發(fā)。onafterprint對(duì)象所關(guān)聯(lián)的文檔打印或打印預(yù)覽后立即在對(duì)象上觸發(fā)。onafterupdate
如何做到打開(kāi)一個(gè)頁(yè)面,過(guò)幾分鐘自動(dòng)轉(zhuǎn)到另一頁(yè)面 如何做到打開(kāi)一個(gè)頁(yè)面,過(guò)幾分鐘自動(dòng)轉(zhuǎn)到另一頁(yè)面1樓scriptwindow.setInterval("location='2.asp'",分鐘數(shù)**);/script2樓setInterval("window.location='yourUrl'",youIntevalTim
JS 建立對(duì)象的方法 Objectsareusefultoorganizeinformation.對(duì)于組織信息來(lái)講對(duì)象是非常有用的JavaScriptObjectsJS對(duì)象EarlierinthistutorialwehaveseenthatJavaScripthasseveralbuilt-inobjects,likeString,Date,Ar
標(biāo)簽: js中eval函數(shù)是干嘛的
本文鏈接地址:http://jsrtzm.cn/biancheng/383949.html 轉(zhuǎn)載請(qǐng)保留說(shuō)明!上一篇:JavaScript進(jìn)階教程(第三課第二部分)第1/2頁(yè)(javascript教學(xué)視頻)
網(wǎng)站地圖: 企業(yè)信息 工商信息 財(cái)稅知識(shí) 網(wǎng)絡(luò)常識(shí) 編程技術(shù)
友情鏈接: 武漢網(wǎng)站建設(shè)