首頁 > web前端 > js教程 > 主體

JS中的eval 為什麼加括號_javascript技巧

WBOY
發布: 2016-05-16 15:05:40
原創
1655 人瀏覽過

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);//string
alert( typeof objType);//obj
alert(eval(123));//123
alert(typeof eval("("+123+")"));//number
var x=2;
var y=eval('x+1');//执行 2+1 表达式
alert('y= '+y);//3
</script>
</head> 
<body>
</body>
</html>
登入後複製

補充:總結

eval是js動態特性之一, 透過它直接執行js程式並回傳結果, 常見的使用就是還原json資料為js物件;

但是由於其能在運行時動態改變上下文物件, 因此帶來了注入攻擊的風險;

使用時, 注意eval對字串的語法認識是如何的, 常見的就是'大括號'問題

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板