zoukankan      html  css  js  c++  java
  • js的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 
    所以结果应该是:
    张三
  • 相关阅读:
    彩色文件夹、彩色文件、图标标记(MultiColorWin)快速操作
    git 国内源
    Mysql 日期格式化 复杂日期区间查询
    项目版本管理Git使用详细教程
    SpringBoot 优雅配置跨域多种方式及Spring Security跨域访问配置的坑
    SpringBoot Spring Security 核心组件 认证流程 用户权限信息获取详细讲解
    SpringBoot包扫描之多模块多包名扫描和同类名扫描冲突解决
    初阶绘图
    变量与档案存取
    结构化程式和自定义函数
  • 原文地址:https://www.cnblogs.com/mingjian/p/3691073.html
Copyright © 2011-2022 走看看