對js eval()函數(shù)的一些見解
一、eval是基本使用規(guī)則
•1 eval() 函數(shù)可計(jì)算某個(gè)字符串,并執(zhí)行其中的的 JavaScript 代碼。
•2 eval(string)
•3 string必需。要計(jì)算的字符串,其中含有要計(jì)算的 JavaScript 表達(dá)式或要執(zhí)行的語句。
•4 eval()只有一個(gè)參數(shù)。
•5 eval使用比較不安全,忘慎重使用
二、eval的錯(cuò)誤使用方法
•1 如果傳入的參數(shù)不是字符串,它直接返回這個(gè)函數(shù)。
•2 如果參數(shù)是字符串,它會把字符串當(dāng)成JavaScript代碼進(jìn)行編譯,如果編譯失敗者拋出一個(gè)語法錯(cuò)誤異常。
•3 如果編譯成功,則開始執(zhí)行這一段代碼,并返回字符串中的最后一個(gè)表達(dá)式或語句的值,
•4 如果最后一個(gè)表達(dá)式或語句沒有值,則最終返回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í)行語句 輸出52
//非正常輸入
try{
var y = 8;
//表達(dá)式
document.write(eval("9+6*x"+"100")); //如果參數(shù)中沒有合法的表達(dá)式和語句,則拋出 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)); //并通過該屬性調(diào)用它,則 ECMAScript 實(shí)現(xiàn)允許拋出一個(gè) EvalError 異常。
}
catch(exception) {
alert(exception);
}
</script>
</body>
</html>
我自己查了好多資料,也還很模糊,希望了解的大神能指點(diǎn)指點(diǎn)!
以上這篇對js eval()函數(shù)的一些見解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序?qū)崿F(xiàn)圖片選擇并預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)圖片選擇并預(yù)覽,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
解決js中的setInterval清空定時(shí)器不管用問題
這篇文章主要介紹了解決js中的setInterval清空定時(shí)器不管用問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
echarts餅圖標(biāo)簽formatter使用及餅圖自定義標(biāo)簽
項(xiàng)目中有遇到需要使用餅圖展示每種狀態(tài)所占比例,去echarts官網(wǎng)學(xué)習(xí)了一番,下面這篇文章主要給大家介紹了關(guān)于echarts餅圖標(biāo)簽formatter使用及餅圖自定義標(biāo)簽的相關(guān)資料,需要的朋友可以參考下2022-12-12
PhotoShop給圖片自動添加邊框及EXIF信息的JS腳本
這篇文章主要介紹了PhotoShop給圖片自動添加邊框及EXIF信息的JS腳本,本文給出效果圖和實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02
js中的window.open返回object的錯(cuò)誤的解決方法
系統(tǒng)中用javascript中的window.open后,頁面返回了一個(gè)[object]。因?yàn)橄到y(tǒng)的原因,必需使用href="javascript:window.open()"這樣的格式。所以只能通過以下辦法解決。2009-08-08
Typescript 實(shí)現(xiàn)函數(shù)重載的方式
函數(shù)重載簡單點(diǎn)說就是,同一個(gè)函數(shù)的不同實(shí)現(xiàn)方式,根據(jù)傳入的參數(shù)的類型或者長度,決定最終調(diào)用哪一個(gè)實(shí)現(xiàn),本文給大家介紹了Typescript 實(shí)現(xiàn)函數(shù)重載的方式,需要的朋友可以參考下2024-05-05

