zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    转Vtype扩展
    Can't connect to MySQL server on 'ip' (13)
    观察者+js 模式
    (转)ASP.NET架构分析
    sql得到时间
    Js+XML 操作 (转)
    js中的math对象
    property和attribute的区别
    CSS样式定义
    linux 开启 mount
  • 原文地址:https://www.cnblogs.com/bossliu/p/4994938.html
Copyright © 2011-2022 走看看