3 回答

TA貢獻1155條經驗 獲得超0個贊
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來獲取難以索引的對象。

TA貢獻1827條經驗 獲得超4個贊
執行指定的腳本
參數是一個字符串
返回解析后的js對象
在ecmascript 5中拋出一個evalError
所以建議你不要用eval
可以代替的辦法是new Function()

TA貢獻1802條經驗 獲得超6個贊
eval()函數功能是將某段字符串當成JS語句來執行。
例如:
var str = "var a = {}";
eval(str);
即相當于直接執行
var a = {};
通常在執行AJAX調用后處理回傳過來的數據時會用到,例如回傳過來的字符串是JSON格式時,可以直接使用eval()。
如:
回傳的語句是
responseText = "{a:'aa',b:'bb'}";
可直接調用為
eval("var o = "+responseText);
即相當于
var o = {a:'aa',b:'bb'};
添加回答
舉報