對(duì)js eval()函數(shù)的一些見(jiàn)解
一、eval是基本使用規(guī)則
•1 eval() 函數(shù)可計(jì)算某個(gè)字符串,并執(zhí)行其中的的 JavaScript 代碼。
•2 eval(string)
•3 string必需。要計(jì)算的字符串,其中含有要計(jì)算的 JavaScript 表達(dá)式或要執(zhí)行的語(yǔ)句。
•4 eval()只有一個(gè)參數(shù)。
•5 eval使用比較不安全,忘慎重使用
二、eval的錯(cuò)誤使用方法
•1 如果傳入的參數(shù)不是字符串,它直接返回這個(gè)函數(shù)。
•2 如果參數(shù)是字符串,它會(huì)把字符串當(dāng)成JavaScript代碼進(jìn)行編譯,如果編譯失敗者拋出一個(gè)語(yǔ)法錯(cuò)誤異常。
•3 如果編譯成功,則開(kāi)始執(zhí)行這一段代碼,并返回字符串中的最后一個(gè)表達(dá)式或語(yǔ)句的值,
•4 如果最后一個(gè)表達(dá)式或語(yǔ)句沒(méi)有值,則最終返回undefined。
三、使用例子
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>eval</title> </head> <body> <script type="text/javascript"> //正確輸入 var x = 10; document.write(eval(10*x + 10)) //表達(dá)式 輸出110 document.write("<br />"); document.write(eval("10 == x")); //表達(dá)式 輸出true document.write("<br />"); eval(document.write(2+5*x)); //執(zhí)行語(yǔ)句 輸出52 //非正常輸入 try{ var y = 8; //表達(dá)式 document.write(eval("9+6*x"+"100")); //如果參數(shù)中沒(méi)有合法的表達(dá)式和語(yǔ)句,則拋出 SyntaxError 異常。 document.write("<br />"); eval('++++2'); //編譯失敗ReferenceError異常 eval(document.write(2+2)); //編譯成功 document.write(eval()); //返回undefined var my = eval(); //如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個(gè)屬性, document.write(my(1+2)); //并通過(guò)該屬性調(diào)用它,則 ECMAScript 實(shí)現(xiàn)允許拋出一個(gè) EvalError 異常。 } catch(exception) { alert(exception); } </script> </body> </html>
我自己查了好多資料,也還很模糊,希望了解的大神能指點(diǎn)指點(diǎn)!
以上這篇對(duì)js eval()函數(shù)的一些見(jiàn)解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript設(shè)置彈出式獨(dú)立窗口頁(yè)面和window的方法舉例詳解
window.open是網(wǎng)頁(yè)中經(jīng)常遇到的彈出窗口代碼,不是網(wǎng)絡(luò)中比較反感的那類彈出代碼,下面這篇文章主要給大家介紹了關(guān)于JavaScript設(shè)置彈出式獨(dú)立窗口頁(yè)面和window的方法,需要的朋友可以參考下2024-01-01使用Microsoft Ajax Minifier減小JavaScript文件大小的方法
大家用來(lái)減小JavaScript文件下載大小的常見(jiàn)的方式有2種: 壓縮(compression)和縮小(minification)。2010-04-04onsubmit阻止form表單提交與onclick的相關(guān)操作
return false會(huì)阻止表單提交,基本上關(guān)于onsubmit=return false有以下幾點(diǎn)要注意的地方,學(xué)習(xí)后臺(tái)編程的朋友一定要知道。2010-09-09基于RequireJS和JQuery的模塊化編程——常見(jiàn)問(wèn)題全面解析
下面小編就為大家?guī)?lái)一篇基于RequireJS和JQuery的模塊化編程——常見(jiàn)問(wèn)題全面解析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-04-04原生js實(shí)現(xiàn)類似彈窗抖動(dòng)效果
這篇文章主要介紹了原生js實(shí)現(xiàn)類似彈窗抖動(dòng)效果的相關(guān)資料,推薦給大家,需要的朋友可以參考下2015-04-04JS獲取當(dāng)前時(shí)間實(shí)例代碼(年月日時(shí)分秒)
在javascript中,可以使用Date對(duì)象中的Date()方法來(lái)獲取當(dāng)前時(shí)間,下面這篇文章主要給大家介紹了關(guān)于JS獲取當(dāng)前時(shí)間(年月日時(shí)分秒)的相關(guān)資料,需要的朋友可以參考下2022-09-09微信小程序阻止頁(yè)面返回實(shí)例詳解(包滑動(dòng)、自動(dòng)返回鍵)
小程序如果在頁(yè)面內(nèi)進(jìn)行復(fù)雜的界面設(shè)計(jì),用戶進(jìn)行返回操作會(huì)直接離開(kāi)當(dāng)前頁(yè)面,不符合用戶預(yù)期,下面這篇文章主要給大家介紹了關(guān)于微信小程序阻止頁(yè)面返回(包滑動(dòng)、自動(dòng)返回鍵)的相關(guān)資料,需要的朋友可以參考下2023-06-06js手機(jī)號(hào)4位顯示空格,銀行卡每4位顯示空格效果
這篇文章主要介紹了js手機(jī)號(hào)4位顯示空格,銀行卡每4位顯示空格效果,手機(jī)號(hào)和銀行卡號(hào),按照每4位顯示一個(gè)空格的需求,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-03-03前端使用xlsx導(dǎo)出數(shù)據(jù)生成Excel文件的全過(guò)程
這篇文章主要給大家介紹了關(guān)于前端使用xlsx導(dǎo)出數(shù)據(jù)生成Excel文件的相關(guān)資料,最近在做項(xiàng)目中,后端偷懶不做導(dǎo)出功能,讓我前端實(shí)現(xiàn),所以在這里記錄下前端導(dǎo)出功能,需要的朋友可以參考下2023-08-08