DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JS中的eval 為什麼加括號
JS中的eval 為什麼加括號
編輯:關於JavaScript     

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對字符串的語法認識是如何的, 常見的就是'大括號'問題

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved