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 
    所以结果应该是:
    张三
  • 相关阅读:
    Joint Consensus两阶段成员变更的单步实现
    深度干货|云原生分布式数据库 PolarDBX 的技术演进
    SpringMVC框架入门配置 IDEA下搭建Maven项目
    windows安装composer方法和使用方法
    idea2016 spring 新手上路
    jQuery 获取 attr() 与 prop() 属性值的方法及区别介绍 _fei
    处女座的看过来【 JetBrains强迫症】注释篇
    phpstorm 配置 xdebug调试工具
    使用Intellij IDEA整合Spring+Spring MVC+MyBitis
    长链剖分小记
  • 原文地址:https://www.cnblogs.com/oneword/p/1687406.html
Copyright © 2011-2022 走看看