eval方法:

检查JScript代码,并且执行.

语法:

eval(codeString);

参数:

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

例子:

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

结果:

当我们描述的字符串符合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("({})"));

结果:

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

如何解析一个json字符串:

        var codeString="{'id':1,'name':'张三'}";
var zs = eval("("+codeString+")");
document.write(zs.name);
对代码进行调试,可以看到结果如下:
 
所以结果应该是:
张三

js的eval方法的更多相关文章

  1. js中eval() 方法的使用以及一些特殊的使用方式

    1.eval方法只能在非严格模式中进行使用,在use strict中是不允许使用这个方法的. 2.eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值 ...

  2. 擅于使用JS的eval方法

    样例如下: var appsDetails = {“app1”:"", “app2”:"", “app3”:"", “app4”:" ...

  3. js 的eval()方法 计算某个字符串,并执行其中的的 JavaScript 代码;

    定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 Java ...

  4. 用Java开发一个工具类,提供似于js中eval函数功能的eval方法

    今天在看到<Java疯狂讲义>中一个章节习题: 开发一个工具类,该工具类提供一个eval()方法,实现JavaScript中eval()函数的功能--可以动态运行一行或多行程序代码.例如: ...

  5. 前端Js跨域方法汇总—剪不断,理还乱,是跨域

    1.通过jsonp跨域2.通过修改document.domain来跨子域(iframe)3.隐藏的iframe+window.name跨域4.iframe+跨文档消息传递(XDM)5.跨域资源共享 C ...

  6. js中eval详解,用Js的eval解析JSON中的注意点

    先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要 ...

  7. JS动态调用方法名示例介绍

    先看看JS的一个函数  JavaScript eval() 函数 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数 描 ...

  8. 用Js的eval解析JSON中的注意点

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  9. javaScript中eval()方法转换json对象

    <script language="javascript"> var user = '{name:"张三",age:23,'+ 'address:{ ...

随机推荐

  1. 对163k地方门户网站系统QQ互联功能修改

    163k地方门户网站QQ互联申请时遇到的问题: "禁止开发商强制用户重新注册或绑定其他帐号" 原因是用户登录完QQ还需要注册帐号或者绑定原有帐号 163k地方门户网站的QQ互联登录 ...

  2. DHTMLEdit

    DHTMLEdit   POP3研究了一会,发现如果要写一个类似FOXMAIL的东西,还需要解决一个编辑的问题.以为邮件是支持HTML编辑的. 网上查了一会发现可以使用WINDOWS自带的控件:DHT ...

  3. 五子棋AI

    下面是一些参考资料,打算看看: http://www.cnblogs.com/Blog_SivenZhang/archive/2010/06/13/1757677.html http://blog.c ...

  4. perl 对象 通过bless实现

    对象只是一种特殊的引用,它知道自己是和哪个类关联在一起的,而构造器知道如何创建那种关联关系. 这些构造器是通过使用bless操作符,将一个普通的引用物转换成一个对象实现的,

  5. ubuntu 右键新建文档

    第一步.创建一个空白doc文档. 一定要是空白的,然后保存(另存为)到桌面,注意细节:1.保存到你能找到的地方,最好是桌面,以方便第二步拖动 2.注意下方的 “文件类型”,要选择doc格式. 3.注意 ...

  6. sqlserver练习

    1.基本表的练习: create table Test( name ), age int, sex ) ) alter table Test ) alter table Test ) alter ta ...

  7. hbase单机安装

    1.网上内容比较混乱,其实安装单机hbase只需要安装hbase即可 2.把hbase-0.xxx.tart.gz 拷贝到/opt/hbase文件及下(这是安装目录,可自定义) 2.1 tar xfz ...

  8. Dalvik虚拟机的运行过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8914953 在前面一篇文章中,我们分析了Dal ...

  9. Qt之操作Excel

    Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件. ...

  10. RMAN-FORMAT-CONFIGURE及动态性能表

    一.FORMAT参数在备份过程中,可指定format参数来自定义备份片段的命令规则,比如: RMAN> BACKUP DATABASE FORMAT 'D:\BACKUP\%U'; RMAN&g ...