A. eval('('+sjson+')')
eval('('+sjson+')') 執行的是什麼?
eval 函數
功能:先解釋javascript代碼,然後在執行它
用法:eval(codeString)
codeString是包含有Javascript語句的字元串,在eval之後使用Javascript引擎編譯。
舉個小例子:
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);
如果你運行這段eval程序, 你將會看到在JavaScript里字元串」2 + 3〃實際上被執行了。
後一句的ret.result又是什麼意思?
eval('('+sjson+')')調用sjson返回結果,並且返回的結果是一個布爾型
sjson的值能從.post(url)里返回嗎?
可以返回的
B. javascript 裡面eval表示的是什麼函數呀
eval可以將字元串生成語句執行,和SQL的exec()類似。
eval的使用場合是什麼呢?有時候我們預先不知道要執行什麼語句,只有當條件和參數給時才知道執行什麼語句,這時候eval就派上用場了。舉個例子:
我們要做一個function(),功能是輸入網頁中兩個個對象的名稱,然後程序就將這兩個對象的值聯接起來輸出。
function output(a,b)
{
var tmpa,tmpb;
tmpa=document.all.a.value;
tmpb=document.all.b.value;
document.write(tmpa+tmpb);
}
output('input1','input2');
這樣你執行的時候就會提示錯誤「document.all.a不是對象」以及「document.all.b不是對象」。原來javascript把a和b當成對象名稱了,怎樣能讓javascript把a裡面的值作為對象名稱呢?這時候就要用eval了,把代碼改成這樣:
function output(a,b)
{
var tmpa,tmpb;
tmpa=eval("document.all."+a+".value");
tmpb=eval("document.all."+b+".value");
document.write(tmpa+tmpb);
}
output('input1','input2');
這樣javascript就會先取出a,b的值,然後和前面的document.all.以及後面的.value組合運行,於是就可以
順利取出input1和input2的值,我們的目的達到了。
C. eval是什麼意思
Eval的意思是要計算的字元串。
eval可以將字元串生成語句執行,和SQL的exec()類似。eval是Javascript內置函數,用於計算字元串表達式的值。例如eval(「2+3」)返回的是5。Eval(stringy)函數可計算某個字元串,並執行悶蘆其中的JavaScript代碼。
參數:string,描述:要計算的字元串,其中含有要計算的Javascript表達式或要執行的語句。jscript中的用法很相似。
Eval函數
eva函數允許動態執行JScript源代碼。傳遞給eval方法的代碼執行時所在的上下文和調用eval方法時的上下文一樣。請注意,在eval語句中定義的新變數或類型對於封閉程序是不可見的。除非將字元串」unsafe」傳遞為第二個參數。
在Flash4中,還可以使用eval動態地設置和檢索變數值或實例名稱。否則,傳遞至eval方法的代碼在受限安全上下文中執行。受限安全上下文禁止訪問系統資源,如文件系統、網路或用戶界面。如果代碼試圖訪問這些資源,則會產生安全異常。
當eval的第二個參數為字元串unsafe時,傳遞給eval方法的代喊棗碼在調用代碼所在的安全上鄭罩拆下文中執行。第二個參數是區分大小寫的,因此,字元串「Unsafe「或「UnSAfE「不會重寫受限安全上下文。
D. javascript中eval的用法
JavaScript eval() 函數
JavaScript 全局對象
定義和用法:
eval() 函數可計算某個字元串,並執行其中的的 JavaScript 代碼。
語法:
eval(string)
返回值:
通蠢空賀過計算 string 得到的值(如果有的話)。
說明:
該方法只接受原始字元串作為參數,如果 string 參數不是原始字元串,那麼該方法將不作任何改變地返回。因此請不要為 eval() 函數傳遞 String 對象來作為參數。
如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一虧敬個屬性,並通過該屬性調用它,則 ECMAScript 實現允許拋出一個 EvalError 異常。
拋出:
如果參數中沒有合法的表達式和語帶派句,則拋出 SyntaxError 異常。
如果非法調用 eval(),則拋出 EvalError 異常。
如果傳遞給 eval() 的 Javascript 代碼生成了一個異常,eval() 將把該異常傳遞給調用者。
(4)javascript中eval函數例子擴展閱讀:
調用eval函數的三種情況:
1、直接調用
直接調用時,eval函數相關的執行環境屬性ThisBinding,LexicalEnvironment,VariableEnvironment的值如下:
a) ThisBinding是調用eval函數時,調用方執行環境的ThisBinding
b) LexicalEnvironment是調用eval函數時,調用方執行環境的LexicalEnvironment
c) VariableEnvironemnt是調用eval函數時,調用方執行環境的VariableEnvironment
2、間接調用
所謂間接調用,即將eval賦值給另一個變數後在調用
3、嚴格模式下的eval
在嚴格模式下,eval的LexicalEnvironment,VariableEnvironment指向屬於eval自己的Lexcial Environment,而不是調用方的Lexical Environment,但是ThisBinding還是調用方的ThisBinding。
同時,在嚴格模式下如果eval直接調用,那麼eval的Lexical Environment的outer指針指向調用方的Lexical Environment,否則,如果是間接調用,那麼eval的Lexical Environment的outer指針指向全局環境的Lexical Environment。
參考資料來源:網路--eval()
E. 請問Javascript中的eval()函數中額外的圓括弧有什麼用
在eval()函數內的括弧是運算符"()",相當於 「13*(1+2)」這個計算式中吵圓的括弧
假如 request.responseText = "12+10" 是字元串
經過 var response = eval("(" + request.responseText + ")") ; 後
response = (12+10); 也就是22
為什麼要用括弧,升畝塌要看耐氏上下文代碼。
F. js中這個函數eval()對json數據有什麼用那eval( '(' + content + ')' )里邊為什麼要加引號呢
對於伺服器返回的JSON字元串,如果jquery非同步請求沒做類型說明,或者以字元串方式接受,那麼需要做一次對象化處理,方式不是太麻煩,就是將該字元串放於eval()中執行一次。這種方式也適合以普通javascipt方式獲取json對象,以下舉例說明:
var dataObj=eval("("+data+")");//轉換為json對象
為什麼要 eval這里要添加 「("("+data+")");//」呢?
原因在於:eval本身的問題。 由於json是以」{}」的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。
加上圓括弧的目的是迫使eval函數在處理JavaScript代碼的時候強制將括弧內的表達式(expression)轉化為對象,而不是作為語 句(statement)來執行。舉一個例子,例如對象字面量{},如若不加外層的括弧,那麼eval會將大括弧識別為JavaScript代碼塊的開始 和結束標記,那麼{}將會被認為是執行了一句空語句。所以下面兩個執行結果是不同的:
alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]
G. JAVASCRIPT中的EVAL()函數問題如下:
JS eval()函數
eval()函數
JavaScript有許多小竅門來使編程更加容易。
其中之一就是eval()函數,這個函數可以把一個字元串當作一個JavaScript表達式一樣去執行它。
舉個小例子:
//執行表達式
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);
如果你運行這明隱森段eval程序, 你將會看到在JavaScript里字元串"2 + 3"實際上被執行了。
所以當你把the_evaled_answer的值設成 eval("2 + 3"攜旅)時, JavaScript將會明白並把2和3的和返回給the_evaled_answer。
這個看起來似乎有點傻,其實可以做出很有趣的事。比如使用eval你可以根據用戶的輸入直接創建函數。
這可以使程序根據時間或用戶輸入的不同而使程序本身發生變化,通過舉一反三,你可以獲得驚人的效果。
在實際中,eval很少被用到,但也許你見過有人使用eval來獲取難以索引的對象。
文檔對象模型(DOM)的問題之一是:有時你要獲取你要求的對象簡直就是痛苦。
例如,這里有一個函數詢問用戶要變換哪個圖象:變換哪個圖象你可以用下面這個函數:
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標記:
[img src="http://a.com/a.gif" name="parrot"]
[img src="http://b.com/b.gif" name="cheese"]
[code]
請注意象這樣的幾行語句:
[code]
the_image_object = window.document.parrot;
它把一個圖象對象敷給了一個變數。雖然看起來有點兒奇怪,它在語法上卻毫無問題。
但當你有100個而不是兩個圖象時怎麼辦?你只好寫上一大堆的 if-then-else語句,要是能象這樣就好了:
function swapTwo()
{
var the_image = prompt("change parrot or cheese","");
window.document.the_image.src = "ant.gif";
}
不幸的是, JavaScript將會尋找名字叫 the_image而不是你所希望的"cheese"或者"parrot"的圖象,
於是你得到了錯誤信息:」沒聽說過一個名為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",激畝在第二行里創建了一個字元串即window.document.parrot. 然後包含了eval的第三
行意思是: "給我對象window.document.parrot" - 也就是你要的那個圖象對象。一旦你獲取了這個圖象對象,你可以把
它的src屬性設為ant.gif. 有點害怕?用不著。其實這相當有用,人們也經常使用它。
我們常常在Javascript中間到Eval這個函數,
有些人覺得這個函數很奇怪,可以把一些字元串變的功能很強大
在我們需要將普通的字元串轉變成具體的對象的時候,就會用到這個函數
eval 函數對作為數字表達式的一個字元串進行求值,其語法為:
eval(expr)
此處 expr 是一個被求值的字元串參數。如果該字元串是一個表達式,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=10
document.write(eval(x+17))
document.write("<br />")
eval("alert('Hello world')")
</script>
</body>
</html>
第一個運算x*y = 10*20 = 200;
第二個運算2+2 = 4
第三個運算x+17 = 10 + 17 = 27
H. 求解釋一下javascript的一個函數
eval函數就是把 eval(str) 裡面的str當做javascript語句來執行
那eval("u" + musicId)這句,首先執行字元串u和變數musicId的字元串連接,假設musicId為10,那就變成了eval("u10"),這時eval將u10當做javascript里的語句,那就將u10認為是一個變數來獲取它的值。
eval("u" + musicId)+"|"接下來與|一個豎線來進行字元串連接,
依次類推,假設musicId為10的話,那songstr=eval("u" + musicId)+"|"+musicId+"|"+eval("n" + musicId)+"|"+eval("t" + musicId)+"|"+eval("s" + musicId);
進行變數替換後就為
songstr=eval("u10" )+"|"+10+"|"+eval("n10")+"|"+eval("t10")+"|"+eval("s10");
假設前面定義了var u10=1,n10=2,t10=3,s10=4,這句話執行後就變為
songstr=「1|10|2|3|4」這樣一個字元串
I. jsp的eval是怎樣使用的eval和event的區別
jsp中event 是javaScript的事件管理對象,對鍵盤,滑鼠產生的動作,都可以出發這個對象的某個屬性。
eval() 函數可將字元串轉換為代碼執行,並返回一個或多個值
例如:eval("alert(1234)");//彈出對話框,並且顯示1234
eval("abcdefg()");//abcdefg()為javaScript函數名稱
總之,eval中的參數可以是javaScript。就像在頁面中運行一樣。
J. 在JS中eval函數是什麼意思
它的功能是把對應的字元串解析成JS代碼並運行
比如說你現在要運行一個鉛讓山可變的方法
function
name1(){……}
function
name2(){……}
var
m="name1";
eval(m+'()');//運行name1();
m='name2';
eval(m+'()');//運行槐中滑伍name2();