eval 字面意思 :evaluate 評價 評估評價;函數
eval函數會評估一個給定的含有JavaScript代碼的字符串,而且試圖去執行包含在字符串裏的表達式或者一系列的合法的JavaScript語句。eval函數將把最後一個表達式或者語句所包含的值或引用做爲返回值。
lua
事例代碼:spa
var evalarray=["id","time","info"]; var e=eval(evalarray); console.log(e); //輸出:[ 'id', 'time', 'info' ]
var evalarray={"id":1,"time":"15:21","info":"student"}; var e=eval(evalarray); console.log(e); //輸出{ id: 1, time: '15:21', info: 'student' }
var x= 2,y=5; var e=eval("x+y"); console.log(e); //輸出 7
console.log(eval('{timer:"hello"}')); // 輸出 hello
加上圓括號的目的是迫使eval函數在評估JavaScript代碼的時候強制將括號內的表達式轉化爲對象而不是做爲語句來執行。code
例如對象字面量{},對象
console.log(eval("{}")); // 輸出 undefined console.log(eval("({})"));// 輸出 {}
如若不加外層的括號,那麼eval會將大括號識別爲JavaScript代碼塊的開始和結束標記,ip
那麼{}將會被認爲是執行了一句空語句。因此下面兩個執行結果是不一樣的。字符串
evel接受任意的字符串,並看成JavaScript代碼來處理。當有問題的代碼是事先知道的(不是運行時肯定的),沒有理由使用eval(),準確地說他是魔鬼!console