JS中的eval 為什麼加括弧,jseval加括弧
eval簡介
---eval在ECMA定義中是全域對象原型的方法;
---eval接受的參數是字串格式的js代碼, 將由執行引擎(記得'進階程式設計'還是哪說過, 此時建立一個執行引擎)執行這段字串, 然後返回結果到eval調用的位置.
<!DOCTYPE html><html><head><title>eval學習</title><script type="text/javascript">/*eval("運算式");執行運算式語句eval("("+javascript類型+")");轉為javascript對象*/var jsonObj={"name":"ljl","data":123};//json,是javascript的對象var jsonString='{"name":"ljl","data":123}';//javascript的string類型,字串內容符合json格式的樣式var objType=eval("("+jsonString+")");//通過eval函數將json字元轉為javascript對象alert( typeof jsonString);//stringalert( typeof objType);//objalert(eval(123));//123alert(typeof eval("("+123+")"));//numbervar x=2;var y=eval('x+1');//執行 2+1 運算式alert('y= '+y);//3</script></head> <body></body></html>
補充:總結
eval是js動態特性之一, 通過它直接執行js程式並返回結果, 常見的使用就是還原json資料為js對象;
但是由於其能在運行時動態改變內容物件, 因此帶來了注入攻擊的風險;
使用時, 注意eval對字串的文法認識是如何的, 常見的就是'大括弧'問題
您可能感興趣的文章:
- JS 有趣的eval最佳化輸入驗證執行個體代碼
- js使用eval解析json(js中使用json)
- js使用eval解析json執行個體與注意事項分享
- JavaScript eval() 函數介紹及應用樣本
- JavaScript中的eval()函數使用介紹
- 為什麼JS中eval處理JSON資料要加括弧