eval():

  作用:它的作用是把对应的字符串解析成js代码并运行(将json的字符串解析成为JSON对象);

  特点:它是一个全局函数;

  缺点:1>在该函数内部申明的变量都是全局变量,且申明的变量不会提升;

       2>耗性能,执行2次,一次解析成js语句,一次执行js代码;

  举例:

  1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,就是将字符串放到eval()函数中执行如下:

已知服务器返回JSON字符串集合:

var data="{

  student:[

    {name:'小明',age:17},

    {name:'小红',age:16},

    {name:'小鹏',age:18}

]

}";

var dataObj=eval("("+data+")");

注意:这里在data外添加"("+**+")"是由于json是以"{}"的方式包裹的,js会将以"{}"包裹的代码当成语句处理,所以在调用该函数的时候需要先强制性转换一种表达方式,

alert(eval("{}"); // return undefined;
alert(eval("({})");// return object[Object];

2..对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:

alert(dataObj.root.length);//输出root的子对象数量 
$.each(dataObj.student,fucntion(idx,item){ 
if(idx==0){ 
return true; 

//输出每个student子对象的名称和值 
alert("name:"+item.name+",age:"+item.age); 
}) 
注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。

$.getJSON("http://www.phpstudent.cn/",{param:"gaoyusi"},function(data){ 
//此处返回的data已经是json对象 
//以下其他操作同第一种情况 
$.each(data.student,function(idx,item){ 
if(idx==0){ 
return true;//同countinue,返回false同break 

alert("name:"+item.name+",age:"+item.age); 
}); 
}); 
这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。

eval函数的特点和作用的更多相关文章

  1. eval函数的作用

    eval函数的作用是去掉字符串最外侧的引号,并按照Python的语法执行去掉引号后的字符内容. [实例1] x=eval("12+36")print(x)  #结果为48此例中,去 ...

  2. JavaScript中Eval()函数的作用

    这一周感觉没什么写的,不过在研究dwz源码的时候有一个eval()的方法不是很了解,分享出来一起学习 -->首先来个最简单的理解 eval可以将字符串生成语句执行,和SQL的exec()类似. ...

  3. Python中eval函数的作用

    eval eval函数就是实现list.dict.tuple与str之间的转化str函数把list,dict,tuple转为为字符串# 字符串转换成列表a = "[[1,2], [3,4], ...

  4. python中eval函数作用

    eval函数就是实现list.dict.tuple与str之间的转化str函数把list,dict,tuple转为为字符串 一.字符串转换成列表 a = "[[1,2], [3,4], [5 ...

  5. Python基础 — eval 函数的作用

    eval函数就是实现list.dict.tuple与str之间的相互转化str函数把list,dict,tuple转为为字符串 # 字符串转换成列表a = "[[1,2], [3,4], [ ...

  6. 浅谈JavaScript eval() 函数

    用js的人都应该知道eval()函数吧,虽然该函数用的极少,但它却功能强大,那么问题来了,为什么不常用呢?原因很简单,因为eval()函数是动态的执行其中的字符串,里面有可能是脚本,那么这样的话就有可 ...

  7. JavaScript中的eval()函数

    和其他很多解释性语言一样,JavaScript同样可以解释运行由JavaScript源代码组成的字符串,并产生一个值.JavaScript通过全局函数eval()来完成这个工作. eval(“1+2” ...

  8. eval() 函数

    eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. var str = '12+45*45'; alert(eval(str))//计算结果 还有一个重要作用可以把字符串 ...

  9. 使用本函式处理后的字串会沿续到PHP程式而转入eval函数

    html码放在数据库里,通过php文件调用,经过一系列处理后,用eval函数 将希望的变量带入生成所需要的动态页.这样,我就没再看vbb源码,而转入eval函数了. 星空浪子的php中文手册是这样介绍 ...

随机推荐

  1. U3D学习资料收集

    1,风宇冲的博客 2,gkEngine 3,@浅墨_毛星云 4,聊聊引擎底层如何实现BRDF渲染算法

  2. Ubuntu搜狗拼音输入法崩溃问题

    Ubuntu 14.04.5 LTS 环境下搜狗拼音经常崩溃,似乎也没有什么特别好的解决办法. 以下是重启命令 #!/bin/sh >/dev/>& >/dev/>&a ...

  3. phxpaxos遇到反复拉取checkpoint但是反复失败的问题,给其它节点造成压力

    原因: 接收checkpoint时与接收普通message共用IOLoop中的队列,当遇到队列满或者超内存时,会造成checkpoint的包随机丢失的问题 解决办法: 遇到checkpoint时不丢弃 ...

  4. MIP如何为页面加速?

    MIP是近日由百度发起的开源项目,它的核心是一套应用于移动网页的开放性技术标准,通过提供MIP-HTML规范.MIP-JS运行环境以及MIP-Cache页面缓存系统,实现移动网页加速. 换言之就是,M ...

  5. WEB的数据交互具体流程

    前一段时间小小的总结了一下,web的前后交互的各种方式可能没写全,后期再写,话不多说 前端传递数据到servlet,servlet获取数据后操作DAO修改数据库,然后servlet将某些参数返回到前端 ...

  6. 大数据入门到精通16--hive 的条件语句和聚合函数

    一.条件表达 case when ... then when .... then ... when ... then ...end select film_id,rpad(title,20," ...

  7. 【练习】Python第一,二次

    练习一 1,执行Python脚本的两种方式 a,Python解释器 b,Python  1.py 2,简述位和字节的关系 一个字节等于8位 3,简述ascii,unicode,utf-8,gbk的关系 ...

  8. ucos中消息队列的应用(二)

    继续说任务间的通信. 本次的任务是在ISR中发送一个消息给任务,ucos的代码中的是非常之简洁和容易理解啊.创建,释放,等待,非常好理解,不再赘述. 说说我遇到的问题,数据帧接收完之后,向消息队列发送 ...

  9. 【java】多个对象的序列化和反序列化

    当我们需要序列化多个对象的时候,可以采用集合把多个对象放到集合中,然后序列化整个集合. 而我们要反序列化的时候,就使用集合接收反序列化后的对象 如: List<Student> stude ...

  10. MySQL如何解决1209错误

            1209 - The MySQL server is running with the--read-only option so it cannot  execute this sta ...