zoukankan      html  css  js  c++  java
  • eval

    eval方法:

    检查JScript代码,并且执行.

    语法:

    eval(codeString);

    参数:

    codeString是必选项,参数是包含有效的JScript代码的字符串值,这个字符串值将由JScript分析器进行分析和执行.

    例子:

            var str='2+3';
            document.write(str+"<br/>");
            document.write(eval(str));

    结果:

    image

    当我们描述的字符串符合JScript代码规范时,使用eval可以执行字符串中的内容.

    json:

    json的格式是由大括号和冒号构成的名值对.具体参见其他文章.

    例子:

            var zs={'id':1,'name':"张三"};

    eval和json:

    由于ajax的兴起,json这种轻量级的数据格式作为客户端与服务器端之间的传输格式逐渐流行起来.进而产生的问题是:如何将服务器端构建好的json数据转化为可用Javascript对象.利用eval函数无疑是一种简单而直接的办法.在转化的时候,需要再json字符串外面包装圆括号:

    eval("(" + codeString + ")");

    为什么要加圆括号呢?

    加圆括号的目的是迫使eval函数在评估Javascript代码的时候,强制将括号内的表达式转化为对象,而不是作为一个语句来执行.

    举个例子:例如字面量{},如果不加外面的圆括号,那么eval会将大括号识别为Javascript代码块的开始和结束,而不是将其视为一个对象.

    执行下面这段代码即可看出区别:

            document.write(eval("{}"));
            document.write("<br/>");
            document.write(eval("{'张三','李四'}"));
            document.write("<br/>");
            document.write(eval("({})"));

    结果:

    image

    现在,我们看到了第二行的结果,只出现了"李四".原因是eval将{'张三','李四'}作为一个语句来执行,并返回最终值,根据逗号运算符的规则,会返回"李四".

    如何解析一个json字符串:

            var codeString="{'id':1,'name':'张三'}";
            var zs = eval("("+codeString+")");
            document.write(zs.name);
    对代码进行调试,可以看到结果如下:
    image 
    所以结果应该是:
    张三
  • 相关阅读:
    MVC3、如何应用EntityFramework 连接MySql 数据库 Kevin
    DEV EXPRESS Summary Footer 不显示 Kevin
    装饰模式 Kevin
    Dev 控件 GridControl 控件 二次绑定数据源的问题。 Kevin
    System.InvalidOperationException 异常 Kevin
    LINQ to XML Kevin
    代理模式——代码版“吊丝的故事” Kevin
    VS2012 中的设备 面板 Kevin
    maven 学习笔记(三)创建一个较复杂的 eclipse+android+maven 工程
    maven 学习笔记(一)eclipse+android+maven
  • 原文地址:https://www.cnblogs.com/oneword/p/1687406.html
Copyright © 2011-2022 走看看