JavaScript中eval()函数的使用


eval()函数可以将字符串解析为javascript代码执行。

var str = "alert('hello world');";
alert(str);  //alert('hello world');
eval(str);  //hello world

 

eval()函数常用于将json字符串解析为json对象。

var jsonStr = "{'name':'bossLiu','age':27}";
alert(jsonStr.name);  //undefined
var jsonObject = eval("("+jsonStr+")");
alert(jsonObject.name);  //bossLiu

注意:由于json对象是用{}括起来的,在javascript中会被当成语句块处理,所以必须将其强制转换成表达式,所以在jsonStr的两边要加上()

 

在ajax中常常使用json作为传输数据,由于返回的数据是字符串,所以需要使用eval()函数解析。

json.txt内容如下:

{
    "person": {
        "name": "bossLiu",
        "age": 27
    }
}

 

<!DOCTYP html>
<html>
<head>
<meta charset="utf-8">
<script>
function ajax() {
    var ajax = new XMLHttpRequest();
    ajax.open("GET","json.txt",true);
    ajax.send();
    ajax.onreadystatechange = function () {
        if (ajax.readyState == 4) {
            if (ajax.status == 200 || ajax.status == 304) {
                var result = ajax.responseText;
                var object = eval("("+result+")");
                document.getElementsByTagName("div")[0].innerHTML = object.person.name;
            }
        }
    }
}
</script>
</head>
<body>
<button onclick="ajax()">点我</button>
<div></div>
</body>
</html>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM